aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Multihot cotangents WIP (doesn't work)multihot-cotangentsTom Smeding9 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 Smeding9 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
|
* 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
|
* Fix pretty-printing for MapTom Smeding2025-11-05
|
* Some extra Map optimisationsTom 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
|
* 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
|
* 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.
* Set Example module as ghci defaultTom Smeding2025-10-08
|
* Complete occCountXTom Smeding2025-10-08
|
* Simplify: Add placeholder recursion branches for convenienceTom Smeding2025-10-08
|
* Simplify: Don't forget effects, againTom Smeding2025-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 countingTom Smeding2025-10-08
|
* Code styleTom Smeding2025-10-08
|
* WIP pruneExpr in AST.CountTom Smeding2025-07-23
|
* Fix extremum bug in DualNumbersTom Smeding2025-07-07
|
* Merge branch 'sparse'Tom Smeding2025-06-21
|\
| * Some more effects to not ignoresparseTom Smeding2025-06-18
| |
| * Don't destroy effects in UnMonoidTom Smeding2025-06-18
| |
| * Don't introduce sparsity if zero is cheapTom Smeding2025-06-18
| |