Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | Some non-working code lolhashable-gadt | Tom Smeding | 2025-02-27 |
| | |||
* | Comment unhandled cases instead of getting 1e6 warnings | Tom Smeding | 2025-02-25 |
| | |||
* | UnMonoid: Properly recurse | Tom Smeding | 2025-02-25 |
| | |||
* | Pretty: Allow colouring exts (currently not) | Tom Smeding | 2025-02-25 |
| | |||
* | Compile: Emit structs in proper order | Tom Smeding | 2025-02-25 |
| | |||
* | Purge Example.Format | Tom Smeding | 2025-01-28 |
| | |||
* | Pretty-printer that supports extension fields | Tom Smeding | 2025-01-28 |
| | |||
* | Complete identity analysis | Tom Smeding | 2025-01-27 |
| | |||
* | Add ext field to remaining AST constructors | Tom Smeding | 2025-01-27 |
| | |||
* | WIP identity analysis | Tom Smeding | 2025-01-20 |
| | |||
* | Improve Compile a little (still only scalars) | Tom Smeding | 2024-12-12 |
| | |||
* | Somewhat working Compile | Tom Smeding | 2024-12-12 |
| | |||
* | Start WIP compile-to-C | Tom Smeding | 2024-12-06 |
| | |||
* | Rename Compile -> CompileCu | Tom Smeding | 2024-12-06 |
| | |||
* | UnMonoid | Tom Smeding | 2024-12-06 |
| | |||
* | Simplify: Reduce plus of literals | Tom Smeding | 2024-12-06 |
| | |||
* | Simplify: Some forgotten 'acted' | Tom Smeding | 2024-12-06 |
| | |||
* | WIP UnMonoid (to be used for compiling to C) | Tom Smeding | 2024-12-06 |
| | |||
* | Fix indentation | Tom Smeding | 2024-12-06 |
| | |||
* | Working argument accum mode (...) | Tom Smeding | 2024-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. | ||
* | WIP accum top-level args | Tom Smeding | 2024-11-26 |
| | |||
* | Prepare for introducing top-level args in accum mod | Tom Smeding | 2024-11-23 |
| | |||
* | Use accum storage for Case too | Tom Smeding | 2024-11-23 |
| | |||
* | drevScoped returns a data type, not CPS | Tom Smeding | 2024-11-23 |
| | |||
* | Factor let storage-dependent scoping logic into separate function | Tom Smeding | 2024-11-22 |
| | |||
* | Configuration for CHAD | Tom Smeding | 2024-11-14 |
| | |||
* | Benchmark GMM | Tom Smeding | 2024-11-14 |
| | |||
* | Remove warnings | Tom Smeding | 2024-11-13 |
| | |||
* | Make EBuild derivative aware of zero cotangent arrays | Tom Smeding | 2024-11-11 |
| | |||
* | Test gmm | Tom Smeding | 2024-11-10 |
| | |||
* | Fix forward derivative of 'exp' | Tom Smeding | 2024-11-10 |
| | |||
* | Test GMM; it fails | Tom Smeding | 2024-11-10 |
| | |||
* | Fix bug in simplifier (effects are hard) | Tom Smeding | 2024-11-10 |
| | |||
* | Complete GMM implementation | Tom Smeding | 2024-11-10 |
| | |||
* | Cleanup, more Language operations | Tom Smeding | 2024-11-09 |
| | |||
* | Add Custom to Language | Tom Smeding | 2024-11-09 |
| | |||
* | Some more primitive operators | Tom Smeding | 2024-11-09 |
| | |||
* | Maximum/minimum | Tom Smeding | 2024-11-09 |
| | |||
* | WIP maximum/minimum | Tom Smeding | 2024-11-08 |
| | |||
* | Custom derivatives | Tom Smeding | 2024-11-08 |
| | |||
* | WIP custom derivatives | Tom Smeding | 2024-11-08 |
| | |||
* | Remove build1 | Tom Smeding | 2024-11-07 |
| | |||
* | Benchmark | Tom Smeding | 2024-11-07 |
| | |||
* | Some simplification rules | Tom Smeding | 2024-11-06 |
| | |||
* | Generate EOneHot in D[EIdx] | Tom Smeding | 2024-11-05 |
| | | | | | | This generates a one-hot for the zero-dimensional inner array because indexing one level further to the actual element is too difficult. But this should simplify away fine. | ||
* | Support EOneHot | Tom Smeding | 2024-11-05 |
| | |||
* | WIP EOneHot | Tom Smeding | 2024-11-04 |
| | |||
* | simplifyFix | Tom Smeding | 2024-10-29 |
| | |||
* | Store only on tape what's used in the dual | Tom Smeding | 2024-10-29 |
| | |||
* | WIP preserve only subset of D0 bindings in dual (...) | Tom Smeding | 2024-10-27 |
| | | | | | | | | | | | | | | | The point of this is to ensure that when an expression occurs in a Build, then the parts of D0 that are only there to make sharing work out for D1 are not laboriously taped in an array and preserved for D2, only for D2 to ignore them. However, while the subtape machinery is a good first step, this is not everything: the current Build translation makes a Build for the (elementwise) tape and separately a build for the primal. Because the primal _does_ generally need the subtaped-away stuff, we can't just not tape those. TODO: figure out how to resolve this / what the next step is. |