1 |
|
2 |
|
3 | Eval_zero = ->
|
4 | i = 0
|
5 | k = []
|
6 | m = 0
|
7 | n = 0
|
8 |
|
9 | for i in [0...MAXDIM]
|
10 | k[i] = 0
|
11 |
|
12 | m = 1
|
13 | n = 0
|
14 | p2 = cdr(p1)
|
15 |
|
16 | while (iscons(p2))
|
17 | push(car(p2))
|
18 | Eval()
|
19 | i = pop_integer()
|
20 | if (i < 1 || isNaN(i))
|
21 | # if the input is nonsensical
|
22 | # just return 0
|
23 | push(zero)
|
24 | return
|
25 | m *= i
|
26 | k[n++] = i
|
27 | p2 = cdr(p2)
|
28 | if (n == 0)
|
29 | push(zero)
|
30 | return
|
31 | p1 = alloc_tensor(m)
|
32 | p1.tensor.ndim = n
|
33 | for i in [0...n]
|
34 | p1.tensor.dim[i] = k[i]
|
35 | push(p1)
|
36 |
|