1
0
forked from GitHub/gf-core

added exprHash in the Haskell binding

This commit is contained in:
Krasimir Angelov
2017-09-05 09:46:43 +02:00
parent 08d781833c
commit a5fe5b9378
2 changed files with 13 additions and 0 deletions

View File

@@ -39,6 +39,7 @@ module PGF2 (-- * PGF
mkFloat,unFloat,
mkMeta,unMeta,
mkCId,
exprHash,
treeProbability,
-- ** Types
@@ -323,6 +324,15 @@ treeProbability (PGF p _) (Expr c_expr touch1) =
touch1
return (realToFrac res)
exprHash :: Int32 -> Expr -> Int32
exprHash h (Expr c_expr touch1) =
unsafePerformIO $ do
h <- pgf_expr_hash (fromIntegral h) c_expr
touch1
return (fromIntegral h)
-----------------------------------------------------------------------------
-- Graphviz

View File

@@ -328,6 +328,9 @@ foreign import ccall "pgf/expr.h pgf_expr_arity"
foreign import ccall "pgf/expr.h pgf_expr_eq"
pgf_expr_eq :: PgfExpr -> PgfExpr -> IO CInt
foreign import ccall "pgf/expr.h pgf_expr_hash"
pgf_expr_hash :: Word -> PgfExpr -> IO Word
foreign import ccall "pgf/expr.h pgf_compute_tree_probability"
pgf_compute_tree_probability :: Ptr PgfPGF -> PgfExpr -> IO CFloat