scijs / ndarray-blas-level2

BLAS Level 2 operations for ndarrays
MIT License
9 stars 2 forks source link

Proposed Development Workflow #7

Open tab58 opened 8 years ago

tab58 commented 8 years ago

Here is a development workflow proposed by @rreusser for continued development here:

  1. Write modules to use .get() and .set().
  2. Add in trivial optimizations like α = 0 etc.
  3. Check code coverage and test cases.
  4. Publish once tested and robust.
  5. Use benchmark to justify optimization choices.
  6. Optimize for the non-getter/setter style. Handle array pointers directly.

Thoughts are welcome.

rreusser commented 8 years ago

Would also be nice to standardize directory structure for this. Like maybe symv.js is the base include that does extremely minimal type-checking and farms the work out to lib/symv.getset.js and lib/symv.pointer.js. It's crazy ugly, but ideally it's straightforward, consistent, and nothing would prevent you from pulling in the low-level include by itself if you really couldn't handle type-checking. This is the approach math.io takes with *.raw.js being a documented low-level include that can circumvent the expensive validations and variadic formats in favor of performance if you really need it.

tab58 commented 8 years ago

Yeah, I think I'd be in favor of some *.optimized.js naming convention and minimal type-checking.