Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | Pretty: fix printing of EMaybe | Tom Smeding | 4 days |
| | |||
* | Commutativity marker on fold1i | Tom Smeding | 11 days |
| | |||
* | Much process with accumulator revamp | Tom Smeding | 2025-03-14 |
| | |||
* | pretty: Print x value for (!) | Tom Smeding | 2025-03-07 |
| | |||
* | pprintExpr | Tom Smeding | 2025-03-07 |
| | |||
* | Fix ppParen in pretty of EWith | Tom Smeding | 2025-03-04 |
| | |||
* | Fix some pretty-printing | Tom Smeding | 2025-03-01 |
| | |||
* | Pretty: Allow colouring exts (currently not) | Tom Smeding | 2025-02-25 |
| | |||
* | Compile: Emit structs in proper order | Tom Smeding | 2025-02-25 |
| | |||
* | Pretty-printer that supports extension fields | Tom Smeding | 2025-01-28 |
| | |||
* | Add ext field to remaining AST constructors | Tom Smeding | 2025-01-27 |
| | |||
* | 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. | ||
* | Test GMM; it fails | Tom Smeding | 2024-11-10 |
| | |||
* | Complete GMM implementation | Tom Smeding | 2024-11-10 |
| | |||
* | Some more primitive operators | 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 |
| | |||
* | WIP EOneHot | Tom Smeding | 2024-11-04 |
| | |||
* | Fix {} usage in pretty-printing of ELet | Tom Smeding | 2024-10-26 |
| | |||
* | Debugging | Tom Smeding | 2024-10-26 |
| | |||
* | Fix interpreter bug | Tom Smeding | 2024-10-22 |
| | |||
* | Differentiate Replicate | Tom Smeding | 2024-10-22 |
| | |||
* | Tests | Tom Smeding | 2024-10-21 |
| | |||
* | Add some missing cases | Tom Smeding | 2024-09-22 |
| | |||
* | WIP better zero/plus, fixing Accum (...) | Tom Smeding | 2024-09-13 |
| | | | | | | | | | | | | | The accumulator implementation was wrong because it forgot (in accumAdd) to take into account that values may be variably-sized. Furthermore, it was also complexity-inefficient because it did not build up a sparse value. Thus let's go for the Haskell-interpreter-equivalent of what a real, fast, compiled implementation would do: just a tree with mutable variables. In practice one can decide to indeed flatten parts of that tree, i.e. using a tree representation for nested pairs is bad, but that should have been done _before_ execution and for _all_ occurrences of that type fragment, not live at runtime by the accumulator implementation. | ||
* | Interpreter, some operations | Tom Smeding | 2024-09-12 |
| | |||
* | A simple embedded frontend | Tom Smeding | 2024-09-05 |
| | |||
* | Generic accumulators | Tom Smeding | 2024-09-05 |
| | |||
* | WIP | Tom Smeding | 2024-09-04 |
| | |||
* | Inching towards drev of build | Tom Smeding | 2024-09-03 |
| | |||
* | WIP Build1 | Tom Smeding | 2024-08-30 |
| | |||
* | Migrate to accumulators (mostly removing EVM code) | Tom Smeding | 2024-08-30 |
| | |||
* | Finish rewrite | Tom Smeding | 2024-01-25 |
| | |||
* | Pretty print let bindings in do notation | Tom Smeding | 2023-09-21 |
| | |||
* | Examples with conditionals | Tom Smeding | 2023-09-20 |
| | |||
* | Stuff | Tom Smeding | 2023-09-19 |
| | |||
* | Pretty print | Tom Smeding | 2023-09-16 |