From 654b13d0de961788ed600e8eeb6c9fbbd736439e Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Thu, 30 Oct 2025 20:09:10 +0100 Subject: Compile foldd1 and foldd2 --- src/Language.hs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/Language.hs') diff --git a/src/Language.hs b/src/Language.hs index d3c38d6..31b4b87 100644 --- a/src/Language.hs +++ b/src/Language.hs @@ -133,6 +133,14 @@ minimum1i e = NEMinimum1Inner e reshape :: SNat n -> NExpr env (Tup (Replicate n TIx)) -> NExpr env (TArr m t) -> NExpr env (TArr n t) reshape = NEReshape +fold1iD1 :: (Var name1 t1 :-> Var name2 t1 :-> NExpr ('(name2, t1) : '(name1, t1) : env) (TPair t1 b)) + -> NExpr env t1 -> NExpr env (TArr (S n) t1) -> NExpr env (TPair (TArr n t1) (TArr (S n) b)) +fold1iD1 (v1 :-> v2 :-> e1) e2 e3 = NEFold1InnerD1 v1 v2 e1 e2 e3 + +fold1iD2 :: (Var name1 b :-> Var name2 t2 :-> NExpr ('(name2, t2) : '(name1, b) : env) (TPair t2 t2)) + -> NExpr env (TArr (S n) b) -> NExpr env (TArr n t2) -> NExpr env (TPair (TArr n t2) (TArr (S n) t2)) +fold1iD2 (v1 :-> v2 :-> e1) e2 e3 = NEFold1InnerD2 v1 v2 e1 e2 e3 + const_ :: KnownScalTy t => ScalRep t -> NExpr env (TScal t) const_ x = let ty = knownScalTy -- cgit v1.2.3-70-g09d2