On Sunday, 14 June 2015 at 12:52:52 UTC, Ola Fosheim Grøstad
wrote:
On Sunday, 14 June 2015 at 12:18:39 UTC, Ilya Yaroshenko wrote:
std.range has a lot of types + D arrays.
The power in unified API (structural type system).
Yeah, I agree that templates in C++/D more or less makes those
type systems structural-like, even though C is using nominal
typing.
I've also found that although the combinatorial explosion is a
possibility, most applications I write have a "types.h" file
that define the subset I want to use for that application. So
the combinatorial explosion is not such a big deal after all.
But one need to be patient and add lots of static_asserts…
since the template type system is weak.
For matrixes this API is very simple: operations like m1[] +=
m2, transposed, etc.
I think it is a bit more complicated than that. You also need
to think about alignment, padding, strides, convolutions,
identiy matrices, invertible matrices, windows on a stream,
higher order matrices etc…
Alignment, strides (windows on a stream - I understand it like
Sliding Windows) are not a problem.
Convolutions, identiy matrices, invertible matrices are stuff I
don't want to see in Phobos. They are about "MathD" not about
(big) standard library.
For hight order slices see
https://github.com/D-Programming-Language/phobos/pull/3397