| Commit message (Collapse) | Author | Age | |
|---|---|---|---|
| * | Multihot cotangents WIP (doesn't work)multihot-cotangents | Tom Smeding | 9 hours |
| | | | | | | | | | | | | | | | | | | | | The idea is sound but for a smaller source language. Notes also in Obsidian, but the theory so far is that dropping support for nested arrays makes this possible, although making the result type-safe (i.e. not have partial functions in a bunch of places) would require making the lack of nested array support explicit in the embedded type system, i.e. have Accelerate-like stratification. The point is that multihots can be added heterogeneously using plusSparseS but not homogeneously with EPlus or plusSparse, because the indices might differ between the summands. Thus as long as we never need to homogeneously sum multihot cotangents, we're golden. Now the crucial observation is that we only need plus to be homogeneous on array elements. So if array elements cannot themselves be arrays, i.e. we drop support for nested arrays, no homogeneous plus of multihot array cotangents is needed, and we can have static multihots. | ||
| * | Optimise eflattenHEADmaster | Tom Smeding | 9 hours |
| | | |||
| * | Import CHAD.Language also qualified as L in Example | Tom Smeding | 2025-12-10 |
| | | |||
| * | APIv1: Some fixes | Tom Smeding | 2025-11-26 |
| | | |||
| * | Add a simplify rule | Tom Smeding | 2025-11-22 |
| | | |||
| * | Fix typo | Tom Smeding | 2025-11-22 |
| | | |||
| * | UnMonoid: Use eunPair | Tom Smeding | 2025-11-13 |
| | | |||
| * | Sparse: Maybe prevent another SpSparse introduction | Tom Smeding | 2025-11-13 |
| | | |||
| * | User-facing API suggestion | Tom Smeding | 2025-11-11 |
| | | |||
| * | hlint cleanup | Tom Smeding | 2025-11-10 |
| | | |||
| * | Use ImportQualifiedPost | Tom Smeding | 2025-11-10 |
| | | |||
| * | Move module hierarchy under CHAD. | Tom Smeding | 2025-11-10 |
| | | |||
| * | Fix pretty-printing for Map | Tom Smeding | 2025-11-05 |
| | | |||
| * | Some extra Map optimisations | Tom Smeding | 2025-11-05 |
| | | |||
| * | Implement D[map] | Tom Smeding | 2025-11-05 |
| | | |||
| * | Cleanup of D[build] and D[fold1i] | Tom Smeding | 2025-11-05 |
| | | |||
| * | drevLambda works, TODO D[map] | Tom Smeding | 2025-11-04 |
| | | |||
| * | autoWeak: Improve typing | Tom Smeding | 2025-11-04 |
| | | | | | | | | | - Check that source layout is actually a subset of the target layout statically, because we can and it prevents runtime errors (I didn't actually get such an error yet, but I worried about it too much) - Use less Append in type of (&.) to make type errors _significantly_ less verbose | ||
| * | WIP drevLambda abstraction! | Tom Smeding | 2025-11-03 |
| | | |||
| * | WIP map + zip | Tom Smeding | 2025-11-03 |
| | | |||
| * | Compile: Add -Wno-maybe-uninitialized | Tom Smeding | 2025-11-03 |
| | | |||
| * | test: Proper intermixing of GCC warnings with test output | Tom Smeding | 2025-11-03 |
| | | |||
| * | Compile foldd1 and foldd2 | Tom Smeding | 2025-10-30 |
| | | |||
| * | Simplify foldD2 to not sum x0 contributions | Tom Smeding | 2025-10-30 |
| | | |||
| * | Implement reshape | Tom Smeding | 2025-10-30 |
| | | |||
| * | Compile: Improve/simplify struct generation | Tom Smeding | 2025-10-30 |
| | | |||
| * | Compile: store sh in array, not in array buffer | Tom Smeding | 2025-10-30 |
| | | |||
| * | Compatibility with ghc 9.8 | Tom Smeding | 2025-10-29 |
| | | |||
| * | Better fold D{1,2} primitives | Tom Smeding | 2025-10-28 |
| | | |||
| * | Count: Improve counting of tape in EFold1InnerD1 | Tom Smeding | 2025-10-25 |
| | | |||
| * | WIP fold: everything but Compile (slow, but should be sound) | Tom Smeding | 2025-10-24 |
| | | |||
| * | subenvSplit (unused, commented out, but it's written now) | Tom Smeding | 2025-10-23 |
| | | |||
| * | WIP fold: Implement D[fold1i] | Tom Smeding | 2025-10-23 |
| | | | | | Still need to handle the new primitives in the rest of the library | ||
| * | More precise reconstructBindings interface | Tom Smeding | 2025-10-23 |
| | | |||
| * | No need for assertSubenvEmpty in D[build] | Tom Smeding | 2025-10-23 |
| | | |||
| * | Helper functions bpush and weakenBindingsE | Tom Smeding | 2025-10-23 |
| | | |||
| * | pipeline helpers in Example | Tom Smeding | 2025-10-23 |
| | | |||
| * | Add uniform-tree test and benchmark | Tom Smeding | 2025-10-23 |
| | | | | | | | We need an optimisation that detects replicate-like behaviour and turns it into actual replicates, which should then be fused away. The problem is exhibited by this function exUniformFree. | ||
| * | Set Example module as ghci default | Tom Smeding | 2025-10-08 |
| | | |||
| * | Complete occCountX | Tom Smeding | 2025-10-08 |
| | | |||
| * | Simplify: Add placeholder recursion branches for convenience | Tom Smeding | 2025-10-08 |
| | | |||
| * | Simplify: Don't forget effects, again | Tom Smeding | 2025-10-08 |
| | | | | | | | This didn't actually result in any test failures, but I caught it while hunting for a bug that turned out to be missing scaleMany in the new occCount. | ||
| * | Count: Correct alternative and scaleMany counting | Tom Smeding | 2025-10-08 |
| | | |||
| * | Code style | Tom Smeding | 2025-10-08 |
| | | |||
| * | WIP pruneExpr in AST.Count | Tom Smeding | 2025-07-23 |
| | | |||
| * | Fix extremum bug in DualNumbers | Tom Smeding | 2025-07-07 |
| | | |||
| * | Merge branch 'sparse' | Tom Smeding | 2025-06-21 |
| |\ | |||
| | * | Some more effects to not ignoresparse | Tom Smeding | 2025-06-18 |
| | | | |||
| | * | Don't destroy effects in UnMonoid | Tom Smeding | 2025-06-18 |
| | | | |||
| | * | Don't introduce sparsity if zero is cheap | Tom Smeding | 2025-06-18 |
| | | | |||
