1234567891011121314151617181920212223242526272829 |
- discard """
- output: "(M: 3, N: 3, fp: ...)"
- """
- # bug #6843
- type
- OrderType = enum colMajor, rowMajor
- Matrix[A] = object
- M, N: int
- fp: ptr A # float pointer
- DoubleArray64[M, N: static[int]] = array[M, array[N, float64]]
- proc stackMatrix[M, N: static[int]](a: var DoubleArray64[M, N], order = colMajor): Matrix[float64] =
- Matrix[float64](
- fp: addr a[0][0],
- M: (if order == colMajor: N else: M),
- N: (if order == colMajor: M else: N)
- )
- var
- data = [
- [1'f64, 2, 3],
- [4'f64, 5, 6],
- [7'f64, 8, 9]
- ]
- m = stackMatrix(data)
- echo m
|