diff options
| author | Tom Smeding <tom@tomsmeding.com> | 2025-10-30 15:56:35 +0100 |
|---|---|---|
| committer | Tom Smeding <tom@tomsmeding.com> | 2025-10-30 15:56:35 +0100 |
| commit | 4d456e4d34b1e4fb3725051d1b8a0c376b704692 (patch) | |
| tree | 1385217efcc0b58ddb028e707e6a5a36b884ed65 /src/AST/Count.hs | |
| parent | 0e8e59c5f9af547cf1b79b9bae892e32700ace56 (diff) | |
Implement reshape
Diffstat (limited to 'src/AST/Count.hs')
| -rw-r--r-- | src/AST/Count.hs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/AST/Count.hs b/src/AST/Count.hs index 229661f..66b4e0b 100644 --- a/src/AST/Count.hs +++ b/src/AST/Count.hs @@ -598,6 +598,21 @@ occCountX initialS topexpr k = case topexpr of EMaximum1Inner _ e -> handleReduction (EMaximum1Inner ext) e EMinimum1Inner _ e -> handleReduction (EMinimum1Inner ext) e + EReshape _ n esh e -> + case s of + SsNone -> + occCountX SsNone esh $ \env1 mkesh -> + occCountX SsNone e $ \env2 mke -> + withSome (Some env1 <> Some env2) $ \env -> + k env $ \env' -> + use (mkesh env') $ use (mke env') $ ENil ext + SsArr' s' -> + occCountX SsFull esh $ \env1 mkesh -> + occCountX (SsArr s') e $ \env2 mke -> + withSome (Some env1 <> Some env2) $ \env -> + k env $ \env' -> + EReshape ext n (mkesh env') (mke env') + EFold1InnerD1 _ cm e1 e2 e3 -> case s of -- If nothing is necessary, we can execute a fold and then proceed to ignore it |
