A pure, low-level tensor program representation enabling tensor program optimization via program rewriting. See the web demo at https://gussmith23.github.io/glenside-web-demo/
on hold for now...because of difficulty of getting lifetimes to work out. Ideally, we could use ArrayViews that reference owned arrays already in the hashmap, but Rust doesn't like this.
[x] CowArray (doesn't work because view variant has lifetimes, so if we insert array back into hashmap, we end up borrowing the hashmap mutably + immutably)
[X] Wrap with RC and see if that works (same error as cowarray)
[X] ArcArray (shared references, but same benchmarks as naive copying)
[ ] Try out data structure idea (see whether there’s a better datatype for what we’re trying to do, better than hashmap, i.e an insert-only datastructure that guarantees that lifetimes do not change when we insert) (not quite sure if this is expressible in rust?)
[ ] Adding a enum wrapper over ndarrray that holds owned data or views/shared data ArrayBase<MyCustomRepr…, >
working on #7,