File: lists.cdb

package info (click to toggle)
cadabra 1.46-6
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 5,244 kB
  • sloc: cpp: 33,188; ansic: 2,724; makefile: 329; yacc: 180; sh: 157; python: 45; lex: 38; lisp: 19
file content (73 lines) | stat: -rw-r--r-- 1,562 bytes parent folder | download | duplicates (6)
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73

obj1:= @length[{a,b,c,d,e}];
tst1:= 5 - @(obj1);
@collect_terms!(%);
@assert(tst1);

obj2:= @range[{-3,4}];
tst2:= {-3,-2,-1,0,1,2,3,4} - @(obj2);
@collect_terms!(%);
@assert(tst2);

obj3:= @inner[{ @range[{0,4}], @range[{-1,3}] }];
tst3:= 2+6+12 - @(obj3);
@collect_terms!(%);
@assert(tst3);

obj4a:= {a_m, b_m ,c_m ,d_m ,e_m };
obj4b:= @range[{1, @length[@(obj4a)]}];
obj4c:= @inner[ { @(obj4a), @(obj4b) } ];
tst4:= a_m + 2 b_m + 3 c_m + 4 d_m + 5 e_m - @(obj4c);
@collect_terms!(%);
@assert(tst4);

obj5a:= {a,b,c,d,e};
obj5b:= @range[{i, 1, @length[@(obj5a)], c_{i} }];
tst5:= { c_1, c_2, c_3, c_4, c_5 }  - @(obj5b);
@collect_terms!(%);
@assert(tst5);

obj6:= @range[{1, 5, c}];
tst6:= {c,c,c,c,c} - @(obj6);
@collect_terms!(%);
@assert(tst6);

# This also works, because curly brackets are b_none:
#
obj6b:= @range[1, 5, c];
tst6b:= {c,c,c,c,c} - @(obj6b);
@collect_terms!(%);
@assert(tst6b);

# obj7:= @range[{i, 1, 10, i/(i-1)*c_{i} }];

# Test 8: List addition.
#
@reset.
obj8:= {a, b, 7 c + q, d, e} - {-f, g, h, i, j};
@list_sum!(%);
@sumflatten!(%);
tst8:= {a + f, b - g, 7c + q - h, d - i, e - j} - @(obj8);
@collect_terms!(%);
@assert(tst8);

# Test 9: Take
#
@reset;
obj9:= A_{m n} + B_{m n} + C_{m} * D_{n} + E_{m n p} * Q_{p};
@take(%){2,3};
tst9a:= C_{m} * D_{n} + E_{m n p} * Q_{p} - @(obj9);
@collect_terms!(%);
@assert(tst9a);

@pop(obj9);
@take(%){2..\infty};
tst9b:= C_{m} * D_{n} + E_{m n p} * Q_{p} - @(obj9);
@collect_terms!(%);
@assert(tst9b);

@pop(obj9);
@take(%){1};
tst9c:= B_{m n} - @(obj9);
@collect_terms!(%);
@assert(tst9c);