UNPKG

550 Btext/coffeescriptView Raw
1# shape of tensor
2
3
4
5Eval_shape = ->
6 push(cadr(p1))
7 Eval()
8 shape()
9
10shape = ->
11 i = 0
12 ndim = 0
13 t = 0
14 ai = []
15 an = []
16 for i in [0...MAXDIM]
17 ai[i] = 0
18 an[i] = 0
19
20 #U **a, **b
21
22 save()
23
24 p1 = pop()
25
26 if (!istensor(p1))
27 if (!iszero(p1))
28 stop("transpose: tensor expected, 1st arg is not a tensor")
29 push(zero)
30 restore()
31 return
32
33 ndim = p1.tensor.ndim
34
35
36 p2 = alloc_tensor(ndim)
37
38 p2.tensor.ndim = 1
39 p2.tensor.dim[0] = ndim
40
41
42
43 for i in [0...ndim]
44 push_integer(p1.tensor.dim[i])
45 p2.tensor.elem[i] = pop()
46
47 push(p2)
48
49 restore()
50