summary refs log tree commit diff stats
path: root/tests/range/tmatrix3.nim
blob: fe666b0d8c3c2fb3ae50f2eb3309f2e72d56846a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
discard """
  output: '''0.0
0.0
0
0
0
'''
"""

include compilehelpers

type
  Matrix*[M, N, T] = object
    aij*: array[M, array[N, T]]

  Matrix2*[T] = Matrix[range[0..1], range[0..1], T]

  Matrix3*[T] = Matrix[range[0..2], range[0..2], T]

proc mn(x: Matrix): Matrix.T = x.aij[0][0]

proc m2(x: Matrix2): Matrix2.T = x.aij[0][0]

proc m3(x: Matrix3): auto = x.aij[0][0]

var
  matn: Matrix[range[0..3], range[0..2], int]
  mat2: Matrix2[int]
  mat3: Matrix3[float]

echo m3(mat3)
echo mn(mat3)
echo m2(mat2)
echo mn(mat2)
echo mn(matn)

reject m3(mat2)
reject m3(matn)
reject m2(mat3)
reject m2(matn)