| Commit message (Collapse) | Author | Age | |
|---|---|---|---|
| * | Multihot cotangents WIP (doesn't work)multihot-cotangents | Tom Smeding | 11 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 | 11 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 |
| | | |||
| * | Remove redundant test dependency | Tom Smeding | 2025-11-22 |
| | | |||
| * | Add some .gitignores | 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 |
| | | |||
| * | Add a stupid Map test | Tom Smeding | 2025-11-05 |
| | | |||
| * | Fix pretty-printing for Map | Tom Smeding | 2025-11-05 |
| | | |||
| * | Some extra Map optimisations | Tom Smeding | 2025-11-05 |
| | | |||
| * | test-framework: Catch exceptions also in sequential runner | 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 |
| | | |||
| * | test-framework: Fix exception handling | 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 |
| | | |||
| * | Add some simple fold tests | 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. | ||
| * | bench: Simplify before differentiating | Tom Smeding | 2025-10-21 |
| | | |||
| * | Add pruneExpr to benchmarks | Tom Smeding | 2025-10-16 |
| | | | | | | | | | neural/default neural/accum gmm/default gmm/accum before 157.1 μs 117.9 μs 2.087 ms 2.040 ms after 106.6 μs 107.0 μs 1.931 ms 1.780 ms I call that a win! | ||
| * | Remove stale import | Tom Smeding | 2025-10-16 |
| | | |||
| * | Parallel test runner | Tom Smeding | 2025-10-13 |
| | | |||
| * | Test with pruneExpr | Tom Smeding | 2025-10-11 |
| | | |||
| * | README: Fix typo | Tom Smeding | 2025-10-09 |
| | | |||
