On Tuesday, 13 March 2018 at 14:13:02 UTC, jmh530 wrote:
On Tuesday, 13 March 2018 at 13:02:45 UTC, Ilya Yaroshenko wrote:
On Tuesday, 13 March 2018 at 12:23:23 UTC, jmh530 wrote:
[...]

Good point. Would matrix(j, i) syntax solve this issue? One of reasons to introduce Mat is API simplicity. ndslice has 3 compile time params. I hope we would have only type for Mat, like Mat!double.

I'm not sure I understand what your syntax solution does...

matrix(j, i) == matrix[i, j] (reversed order)

But I agree that there is a benefit from API simplicity. It would probably be easier to just say Mat is row-major and have another that is column-major (or have the options in ndslice). Nevertheless, it can't help to look at what other matrix libraries do.

Eigen's (C++ library) Matrix class uses template arguments to set storage order (_Options). It looks like Eigen has six template arguments.
https://eigen.tuxfamily.org/dox/classEigen_1_1Matrix.html

Interesting.  Maybe user can do:

alias Mat = Matrix!(double, ColMajor);

Fixed lengths can be considered too. Eigen has good ideas.

Reply via email to