Multiplying transposed matrices in mir

p.shkadzko p.shkadzko at
Sun Apr 19 17:07:36 UTC 2020

I'd like to calculate XX^T where X is some [m x n] matrix.

// create a 3 x 3 matrix
Slice!(double*, 2LU) a = [2.1, 1.0, 3.2, 4.5, 2.4, 3.3, 1.5, 0, 
2.1].sliced(3, 3);
auto b = a * a.transposed; // error

Looks like it is not possible due to "incompatible types for (a) 
* (transposed(a)): Slice!(double*, 2LU, cast(mir_slice_kind)2) 
and Slice!(double*, 2LU, cast(mir_slice_kind)0)"

I'd like to understand why and how should this operation be 
performed in mir.
Also, what does the last number "0" or "2" means in the type 
definition "Slice!(double*, 2LU, cast(mir_slice_kind)0)"?

More information about the Digitalmars-d-learn mailing list