blob: 47a709f809e8b2cea21447d8d5428a28e9fb1787 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
type
Matrix*[M, N: static[int]; T] = object
data: array[M*N, T]
proc `[]`*(M: Matrix; m, n: int): M.T =
M.data[m * M.N + n]
proc `[]=`*(M: var Matrix; m, n: int; v: M.T) =
M.data[m * M.N + n] = v
# Adapt the Matrix type to the concept's requirements
template Rows*(M: type Matrix): untyped = M.M
template Cols*(M: type Matrix): untyped = M.N
template ValueType*(M: type Matrix): typedesc = M.T
|