diff options
| author | Tom Smeding <tom@tomsmeding.com> | 2026-02-12 20:41:39 +0100 |
|---|---|---|
| committer | Tom Smeding <tom@tomsmeding.com> | 2026-02-12 20:41:39 +0100 |
| commit | f5b1b405fa4ba63bdffe0f2998f655f0b06534bf (patch) | |
| tree | 12f85c50ef7fdee1e7967db9a9835ebb78b7efd9 /src/CHAD/AST/UnMonoid.hs | |
| parent | 5c756bc9eefcd98ed8448f491ddbc3197eaa4127 (diff) | |
Just moved the code, nothing else
Diffstat (limited to 'src/CHAD/AST/UnMonoid.hs')
| -rw-r--r-- | src/CHAD/AST/UnMonoid.hs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/CHAD/AST/UnMonoid.hs b/src/CHAD/AST/UnMonoid.hs index a249979..3f8fd2b 100644 --- a/src/CHAD/AST/UnMonoid.hs +++ b/src/CHAD/AST/UnMonoid.hs @@ -19,6 +19,12 @@ unMonoid = \case EDeepZero _ t e -> deepZero t e EPlus _ t a b -> plus t (unMonoid a) (unMonoid b) EOneHot _ t p a b -> onehot t p (unMonoid a) (unMonoid b) + EAccum _ t p eidx sp eval eacc -> + elet (unMonoid eacc) $ + elet (weakenExpr WSink (unMonoid eidx)) $ + accumulateSparse (acPrjTy p t) sp (weakenExpr (WSink .> WSink) (unMonoid eval)) $ \w prj2 idx2 val2 -> + acPrjCompose SAID p (evar (w @> IZ)) prj2 idx2 $ \prj' idx' -> + EAccum ext t prj' (unMonoid idx') (spDense (acPrjTy prj' t)) (unMonoid val2) (evar (w @> IS IZ)) EVar _ t i -> EVar ext t i ELet _ rhs body -> ELet ext (unMonoid rhs) (unMonoid body) @@ -58,12 +64,6 @@ unMonoid = \case ECustom _ t1 t2 t3 a b c e1 e2 -> ECustom ext t1 t2 t3 (unMonoid a) (unMonoid b) (unMonoid c) (unMonoid e1) (unMonoid e2) ERecompute _ e -> ERecompute ext (unMonoid e) EWith _ t a b -> EWith ext t (unMonoid a) (unMonoid b) - EAccum _ t p eidx sp eval eacc -> - elet (unMonoid eacc) $ - elet (weakenExpr WSink (unMonoid eidx)) $ - accumulateSparse (acPrjTy p t) sp (weakenExpr (WSink .> WSink) (unMonoid eval)) $ \w prj2 idx2 val2 -> - acPrjCompose SAID p (evar (w @> IZ)) prj2 idx2 $ \prj' idx' -> - EAccum ext t prj' (unMonoid idx') (spDense (acPrjTy prj' t)) (unMonoid val2) (evar (w @> IS IZ)) EError _ t s -> EError ext t s zero :: SMTy t -> Ex env (ZeroInfo t) -> Ex env t |
