On Sunday, 14 June 2015 at 14:02:59 UTC, Ola Fosheim Grøstad
wrote:
On Sunday, 14 June 2015 at 13:48:23 UTC, Ilya Yaroshenko wrote:
Alignment, strides (windows on a stream - I understand it like
Sliding Windows) are not a problem.
It isn't a problem if you use the best possible abstraction
from the start. It is a problem if you don't focus on it from
the start.
I am sorry for this trolling:
Lisp is the best abstraction, thought.
Sometimes I find very cool abstract libraries, with relatively
small number of users.
For example many programmers don't want to use Boost only because
it's abstractions makes them crazy.
Convolutions, identiy matrices, invertible matrices are stuff
I don't want to see in Phobos. They are about "MathD" not
about (big) standard library.
I don't see how you can get good performance without special
casing identity matrices, transposed matrices and so on. You
surely need to support matrix inversion, Gauss-Jordan
elimination (or the equivalent) etc?
For daily scientific purposes - yes.
For R/Matlab like mathematical library - yes.
For real world application - no. Engineer can achieve best
performance without special cases by lowering "abstraction" down.
Simplicity and transparency ("how it works") is more important in
this case.