aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Multihot cotangents WIP (doesn't work)multihot-cotangentsTom Smeding11 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 eflattenHEADmasterTom Smeding11 hours
|
* Import CHAD.Language also qualified as L in ExampleTom Smeding2025-12-10
|
* APIv1: Some fixesTom Smeding2025-11-26
|
* Add a simplify ruleTom Smeding2025-11-22
|
* Remove redundant test dependencyTom Smeding2025-11-22
|
* Add some .gitignoresTom Smeding2025-11-22
|
* Fix typoTom Smeding2025-11-22
|
* UnMonoid: Use eunPairTom Smeding2025-11-13
|
* Sparse: Maybe prevent another SpSparse introductionTom Smeding2025-11-13
|
* User-facing API suggestionTom Smeding2025-11-11
|
* hlint cleanupTom Smeding2025-11-10
|
* Use ImportQualifiedPostTom Smeding2025-11-10
|
* Move module hierarchy under CHAD.Tom Smeding2025-11-10
|
* Add a stupid Map testTom Smeding2025-11-05
|
* Fix pretty-printing for MapTom Smeding2025-11-05
|
* Some extra Map optimisationsTom Smeding2025-11-05
|
* test-framework: Catch exceptions also in sequential runnerTom Smeding2025-11-05
|
* Implement D[map]Tom Smeding2025-11-05
|
* Cleanup of D[build] and D[fold1i]Tom Smeding2025-11-05
|
* drevLambda works, TODO D[map]Tom Smeding2025-11-04
|
* autoWeak: Improve typingTom Smeding2025-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 Smeding2025-11-03
|
* WIP map + zipTom Smeding2025-11-03
|
* Compile: Add -Wno-maybe-uninitializedTom Smeding2025-11-03
|
* test: Proper intermixing of GCC warnings with test outputTom Smeding2025-11-03
|
* test-framework: Fix exception handlingTom Smeding2025-11-03
|
* Compile foldd1 and foldd2Tom Smeding2025-10-30
|
* Simplify foldD2 to not sum x0 contributionsTom Smeding2025-10-30
|
* Implement reshapeTom Smeding2025-10-30
|
* Compile: Improve/simplify struct generationTom Smeding2025-10-30
|
* Compile: store sh in array, not in array bufferTom Smeding2025-10-30
|
* Compatibility with ghc 9.8Tom Smeding2025-10-29
|
* Add some simple fold testsTom Smeding2025-10-29
|
* Better fold D{1,2} primitivesTom Smeding2025-10-28
|
* Count: Improve counting of tape in EFold1InnerD1Tom Smeding2025-10-25
|
* WIP fold: everything but Compile (slow, but should be sound)Tom Smeding2025-10-24
|
* subenvSplit (unused, commented out, but it's written now)Tom Smeding2025-10-23
|
* WIP fold: Implement D[fold1i]Tom Smeding2025-10-23
| | | | Still need to handle the new primitives in the rest of the library
* More precise reconstructBindings interfaceTom Smeding2025-10-23
|
* No need for assertSubenvEmpty in D[build]Tom Smeding2025-10-23
|
* Helper functions bpush and weakenBindingsETom Smeding2025-10-23
|
* pipeline helpers in ExampleTom Smeding2025-10-23
|
* Add uniform-tree test and benchmarkTom Smeding2025-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 differentiatingTom Smeding2025-10-21
|
* Add pruneExpr to benchmarksTom Smeding2025-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 importTom Smeding2025-10-16
|
* Parallel test runnerTom Smeding2025-10-13
|
* Test with pruneExprTom Smeding2025-10-11
|
* README: Fix typoTom Smeding2025-10-09
|