123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- RA -*- mode: org; -*-
- help: [C-uc .] insert timestamp [C-cc] flip checkbox [C-uucc] partial flip checkbox [C-ct] flip TODO
- #+STARTUP: logdone
- * TODO Everything [1/6]
- - [ ] Bugs [0/6]
- - [ ] ra::Small<real, 3, 3, 3>() benchmark in bench-dot.C has op 10x worse than indexed.
- - [ ] size_s, rank_s in Ryn:: are broken [ra07]
- - [ ] ambiguity / bad init in nested constructors [ra45]
- - [ ] subscripting inconsistencies; for example, if `A` is rank>1 and `i` is rank 1, then `A(i)` will return a nested expression instead of preserving `A`'s rank.
- - [ ] beatable subscripts are not beaten if mixed with non-beatable subscripts. E.g. in A(vector, iota, vector) the iota isn't beaten.
- - [ ] be namespace clean except for possibly real.H, complex.H.
- - [ ] Features [0/4]
- - [ ] Should be able to reshape iota (??) or show examples with TensorIndex,
- maybe. One idea is to generalize View (so View<Iota>, etc.) which is
- something that newra does. But as long as Container is parent of View,
- conversion of (Container const &) into (View const &) forces us to have
- const/nonconst overloads in View (instead of just relying on the constness
- of (View::p). This is just a mess when View::p isn't a pointer.
- - [ ] Fix relationship between Container and View [0/5]
- - [ ] forward const/nonconst overloads to View or ViewConst from here.
- - [ ] remove inheritance relationship of Container on View
- - [ ] add const/nonconst casts of Container to View or ViewConst
- - [ ] remove const overloads from View::operator()
- - [ ] make View be View<pointer> and not View<value_type>
- - [ ] Should be able to turn ravel iterators (e.g. View::begin()) into array iterators. Ptr()
- doesn't work for that. Or to obtain STLIterator from any array iterator. That may come of
- merging STLIterator with ply_index/ply_ravel.
- - [ ] gemv(conj(a), b) should work. Beat View-like selectors down an Expr??
- - [ ] port some of the View ops to generic ArrayIterator. reverse, transpose, etc. seem easy
- enough. Only it kind of bothers me that they need their own Expr-like types while on Views
- it's just a one time op. Propagating ops down Expr into leaf Views (a kind of beating) would
- be better.
- - [X] Error report, debugging [3/3]
- - [X] Optionally throw instead of abort on bounds checks, etc. cf. test/check-runtime.C
- * This was fixed between v8 and v10, see examples/throw.C.
- - [X] Static check on Small constructors e.g. real3 {1, 2, 3}. Cf big.H:513 init<SS>(SS const & s).
- - [X] for Container constructors
- - [X] for Small constructors
- - [X] General static check on prefix matching <2019-02-06 Wed 12:06>
- - [-] Building, tests [3/5]
- - [X] Build docs with cmake
- - [X] Support RA_USE_BLAS with cmake (linux)
- - [X] Support RA_USE_BLAS with cmake (mac) <2018-12-07 Fri 16:33>
- - [ ] Make cmake tests respect dependences and able to be run independently.
- - [ ] Test for expected compilation errors (static_assert, etc) [ra42].
- - [ ] Documentation [0/3]
- - [ ] Complete section on internals
- - [ ] Complete section on other languages, libraries
- - [ ] Describe xreferenced issues in doc ([raxx], etc.)
- - [ ] Other [0/1]
- - [ ] Support tuple as a kind of foreign vector
- - [ ] Iterator type for tuple (like Vector for std::vector).
- - [ ] Appropriate ply. Possibly restrict it to rank 1.
|