summaryrefslogtreecommitdiff
path: root/src/AST
Commit message (Collapse)AuthorAge
* Don't introduce sparsity if zero is cheapTom Smeding4 days
|
* Don't destroy effects in sparse plusTom Smeding4 days
|
* Give DeepZero to WithTom Smeding4 days
|
* Complete pattern matchesTom Smeding4 days
|
* Tests pass, should check if output is sensibleTom Smeding5 days
|
* CHAD.hs compilesTom Smeding6 days
|
* WIPTom Smeding13 days
|
* More WIP sparsityTom Smeding14 days
|
* WIP mixed static/dynamic sparsityTom Smeding2025-06-06
|
* ERecomputeTom Smeding2025-05-25
|
* Print EMaybe as caseTom Smeding2025-05-25
|
* Reorder TLEither to after TEitherTom Smeding2025-04-29
|
* simplify: Better simplify nested monoid opsTom Smeding2025-04-29
|
* pretty: Print types of monoid opsTom Smeding2025-04-29
|
* WIP revamp accumulators again: explicit monoid typesTom Smeding2025-04-27
| | | | | | | | No more D2 in accumulators! Paving the way for configurable sparsity of products and arrays. The idea is to make separate monoid types for a "product cotangent" and an "array cotangent" that can be lowered to either a sparse monoid or a non-sparse monoid. Downsides of this approach: lots of API duplication.
* pretty: Print build dimensionTom Smeding2025-04-25
|
* Don't unSTyTom Smeding2025-04-25
|
* splitLets: Don't split if unnecessaryTom Smeding2025-04-21
|
* pretty: Generate type-tagged fallback namesTom Smeding2025-04-21
|
* Add integer modulo operatorTom Smeding2025-04-21
|
* pretty: Print arguments of open expressionTom Smeding2025-04-18
|
* Split product lets before chadTom Smeding2025-04-05
|
* Pass around an accumMap (but it's empty still)Tom Smeding2025-03-28
|
* Pretty: fix printing of EMaybeTom Smeding2025-03-27
|
* D2[Array] now has a Maybe instead of zero-size for zeroTom Smeding2025-03-26
| | | | Remaining problem: 'add' in Compile doesn't use the D2 stuff
* Commutativity marker on fold1iTom Smeding2025-03-20
|
* Compile EAccumTom Smeding2025-03-17
|
* Much process with accumulator revampTom Smeding2025-03-14
|
* WIP revamp accumulator projection type reprTom Smeding2025-03-14
| | | | | | | I stopped working on this because I realised that having sparse products (and coproducts, prehaps) everywhere is a very bad idea in general, and that we need to fix that first before really being able to do anything else productive with performance.
* Clean up code organisation a littleTom Smeding2025-03-09
|
* pretty: Print x value for (!)Tom Smeding2025-03-07
|
* pprintExprTom Smeding2025-03-07
|
* Compile: Implement EWith (TODO EAccum)Tom Smeding2025-03-05
| | | | That's going to be a mess
* Fix ppParen in pretty of EWithTom Smeding2025-03-04
|
* Fix some pretty-printingTom Smeding2025-03-01
|
* UnMonoid: Properly recurseTom Smeding2025-02-25
|
* Pretty: Allow colouring exts (currently not)Tom Smeding2025-02-25
|
* Compile: Emit structs in proper orderTom Smeding2025-02-25
|
* Pretty-printer that supports extension fieldsTom Smeding2025-01-28
|
* Add ext field to remaining AST constructorsTom Smeding2025-01-27
|
* UnMonoidTom Smeding2024-12-06
|
* WIP UnMonoid (to be used for compiling to C)Tom Smeding2024-12-06
|
* Working argument accum mode (...)Tom Smeding2024-11-26
| | | | | | | | | | | | | | | The derivative of 'neural' in full accum mode is pretty atrocious now; I think this is because when you have code like this: \(a :: Arr 1 R) -> let b = a in let c = b in sum d then because the argument, as well as both let bindings, bind a value of array type, each will introduce an accumulator, hence resulting in three (!) nested `with` clauses that each just contribute their result back to their parent. This is pointless, and we should fix this.
* Test GMM; it failsTom Smeding2024-11-10
|
* Complete GMM implementationTom Smeding2024-11-10
|
* Some more primitive operatorsTom Smeding2024-11-09
|
* WIP maximum/minimumTom Smeding2024-11-08
|
* Custom derivativesTom Smeding2024-11-08
|
* WIP custom derivativesTom Smeding2024-11-08
|
* Remove build1Tom Smeding2024-11-07
|