TODO 3.4 KB

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