diff options
| -rw-r--r-- | src/Example.hs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/Example.hs b/src/Example.hs index bccc8de..2c51291 100644 --- a/src/Example.hs +++ b/src/Example.hs @@ -11,6 +11,7 @@ module Example where import Array import AST +import AST.Count import AST.Pretty import AST.UnMonoid import CHAD @@ -28,6 +29,22 @@ import Example.Types -- ppExpr senv5 $ simplifyN 20 $ let d = descr5 SMerge SMerge in freezeRet d (drev d ex5) (EConst ext STF32 1.0) +pipeline :: KnownEnv env => CHADConfig -> Ex env t -> Ex (D2 t : env) (TPair t (Tup (D2E env))) +pipeline config term + | Dict <- styKnown (d2 (typeOf term)) = + simplifyFix $ pruneExpr knownEnv $ + simplifyFix $ unMonoid $ + chad' config knownEnv $ + simplifyFix $ + term + +-- :seti -XOverloadedLabels -XPartialTypeSignatures -Wno-partial-type-signatures +pipeline' :: KnownEnv env => CHADConfig -> Ex env t -> IO () +pipeline' config term + | Dict <- styKnown (d2 (typeOf term)) = + pprintExpr (pipeline config term) + + bin :: SOp (TPair a b) c -> Ex env a -> Ex env b -> Ex env c bin op a b = EOp ext op (EPair ext a b) |
