aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2018-12-12 21:41:40 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2018-12-12 21:41:40 +0100
commit9a23b07c4c0d06c40d7c0ce91c5fdf7c8449ac49 (patch)
tree9b1a85084b1e046b0a5b5eb06375334ef1eb2f56
parentd6ad3666dc51f475a6e76b07f2c59d039f69f2d4 (diff)
downloadbusybox-w32-9a23b07c4c0d06c40d7c0ce91c5fdf7c8449ac49.tar.gz
busybox-w32-9a23b07c4c0d06c40d7c0ce91c5fdf7c8449ac49.tar.bz2
busybox-w32-9a23b07c4c0d06c40d7c0ce91c5fdf7c8449ac49.zip
testsuite: add bc and dc tests
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rwxr-xr-xtestsuite/bc.tests19
-rw-r--r--testsuite/bc_add.bc26
-rw-r--r--testsuite/bc_add_results.txt38
-rw-r--r--testsuite/bc_arctangent.bc26
-rw-r--r--testsuite/bc_arctangent_results.txt25
-rw-r--r--testsuite/bc_array.bc35
-rw-r--r--testsuite/bc_array_results.txt426
-rw-r--r--testsuite/bc_arrays.bc10
-rw-r--r--testsuite/bc_arrays_results.txt3
-rw-r--r--testsuite/bc_bessel.bc844
-rw-r--r--testsuite/bc_bessel_results.txt843
-rw-r--r--testsuite/bc_boolean.bc181
-rw-r--r--testsuite/bc_boolean_results.txt181
-rw-r--r--testsuite/bc_cosine.bc44
-rw-r--r--testsuite/bc_cosine_results.txt41
-rw-r--r--testsuite/bc_decimal.bc36
-rw-r--r--testsuite/bc_decimal_results.txt51
-rw-r--r--testsuite/bc_divide.bc31
-rw-r--r--testsuite/bc_divide_results.txt31
-rw-r--r--testsuite/bc_exponent.bc22
-rw-r--r--testsuite/bc_exponent_results.txt25
-rw-r--r--testsuite/bc_large.tar.xzbin0 -> 5118896 bytes
-rw-r--r--testsuite/bc_log.bc22
-rw-r--r--testsuite/bc_log_results.txt22
-rw-r--r--testsuite/bc_misc.bc13
-rw-r--r--testsuite/bc_misc1.bc76
-rw-r--r--testsuite/bc_misc1_results.txt57
-rw-r--r--testsuite/bc_misc2.bc45
-rw-r--r--testsuite/bc_misc2_results.txt20
-rw-r--r--testsuite/bc_misc_results.txt4
-rw-r--r--testsuite/bc_modulus.bc70
-rw-r--r--testsuite/bc_modulus_results.txt69
-rw-r--r--testsuite/bc_multiply.bc42
-rw-r--r--testsuite/bc_multiply_results.txt43
-rw-r--r--testsuite/bc_pi.bc4
-rw-r--r--testsuite/bc_pi_results.txt135
-rw-r--r--testsuite/bc_power.bc44
-rw-r--r--testsuite/bc_power_results.txt73
-rw-r--r--testsuite/bc_sine.bc207
-rw-r--r--testsuite/bc_sine_results.txt204
-rw-r--r--testsuite/bc_sqrt.bc18
-rw-r--r--testsuite/bc_sqrt_results.txt16
-rw-r--r--testsuite/bc_strings.bc12
-rw-r--r--testsuite/bc_strings_results.txt5
-rw-r--r--testsuite/bc_subtract.bc32
-rw-r--r--testsuite/bc_subtract_results.txt36
-rw-r--r--testsuite/bc_vars.bc7
-rw-r--r--testsuite/bc_vars_results.txt12
-rwxr-xr-xtestsuite/dc.tests20
-rw-r--r--testsuite/dc_add.dc33
-rw-r--r--testsuite/dc_add_results.txt45
-rw-r--r--testsuite/dc_boolean.dc27
-rw-r--r--testsuite/dc_boolean_results.txt27
-rw-r--r--testsuite/dc_decimal.dc36
-rw-r--r--testsuite/dc_decimal_results.txt51
-rw-r--r--testsuite/dc_divide.dc33
-rw-r--r--testsuite/dc_divide_results.txt32
-rw-r--r--testsuite/dc_divmod.dc64
-rw-r--r--testsuite/dc_divmod_results.txt126
-rw-r--r--testsuite/dc_misc.dc1
-rw-r--r--testsuite/dc_misc_results.txt20
-rw-r--r--testsuite/dc_modexp.dc103
-rw-r--r--testsuite/dc_modexp_results.txt103
-rw-r--r--testsuite/dc_modulus.dc70
-rw-r--r--testsuite/dc_modulus_results.txt68
-rw-r--r--testsuite/dc_multiply.dc42
-rw-r--r--testsuite/dc_multiply_results.txt43
-rw-r--r--testsuite/dc_power.dc45
-rw-r--r--testsuite/dc_power_results.txt73
-rw-r--r--testsuite/dc_sqrt.dc14
-rw-r--r--testsuite/dc_sqrt_results.txt13
-rw-r--r--testsuite/dc_strings.dc37
-rw-r--r--testsuite/dc_strings_results.txt36
-rw-r--r--testsuite/dc_subtract.dc33
-rw-r--r--testsuite/dc_subtract_results.txt37
-rw-r--r--testsuite/dcx_vars.dc2
-rw-r--r--testsuite/dcx_vars_results.txt6
77 files changed, 5466 insertions, 0 deletions
diff --git a/testsuite/bc.tests b/testsuite/bc.tests
new file mode 100755
index 000000000..32460092b
--- /dev/null
+++ b/testsuite/bc.tests
@@ -0,0 +1,19 @@
1#!/bin/sh
2# Copyright 2018 by Denys Vlasenko
3# Licensed under GPLv2 or later, see file LICENSE in this source tree.
4
5. ./testing.sh
6
7tar xJf bc_large.tar.xz
8
9for f in bc*.bc; do
10 r="`basename "$f" .bc`_results.txt"
11 test -f "$r" || continue
12 # testing "test name" "command" "expected result" "file input" "stdin"
13 testing "bc -lq $f" \
14 "{ { bc -lq $f 2>&1; echo E:\$? >&2; } | diff -u - $r; echo E:\$?; } 2>&1" \
15 "E:0\nE:0\n" \
16 "" ""
17done
18
19exit $FAILCOUNT
diff --git a/testsuite/bc_add.bc b/testsuite/bc_add.bc
new file mode 100644
index 000000000..ee03b4bb6
--- /dev/null
+++ b/testsuite/bc_add.bc
@@ -0,0 +1,26 @@
10 + 0
20 + 1
31 + 1
41 + 0
52 + 5
6237 + 483
7999 + 999
82374623 + 324869356734856
92378639084586723980562 + 23468729367839
1037298367203972395108367910823465293084561329084561390845613409516734503870691837451 + 785621394067928346918023476190834672198467134908618723249671349062187346898241093486139046139084613490817356023871869102746182749061872609129847
111.1 + 0
120 + 1.1
13457283.731284923576 + 37842934672834.3874629385672354
141.0 + 0.1
153746289134067138046 + 0.138375863945672398456712389456273486293
16-1 + -1
17-4 + -15
18-1346782 + -1287904651762468913476
1999999999999999999999999999999999999999999999999999999999999.999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 + 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
2099999999999999999999999999999999999999999999999999999999999.999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999995 + 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005
2199999999999999999999999999999999999999999999999999999999999.999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 + 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
2299999999999999999999999999999999999999999999999999999999999.999999999999999999999999999999999999999999999999999999999899999999999999999999999999999999999999999999999999999999999999 + 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
2399999999999999999999999999999999999989999999999999999999999.999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 + 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
24-1889985797 + 2012747315
250 + -14338.391079082
26-2422297 + 1.3134942556
diff --git a/testsuite/bc_add_results.txt b/testsuite/bc_add_results.txt
new file mode 100644
index 000000000..c3b4d6d2a
--- /dev/null
+++ b/testsuite/bc_add_results.txt
@@ -0,0 +1,38 @@
10
21
32
41
57
6720
71998
8324869359109479
92378639108055453348401
1078562139406792834691802347619083467219846713490861872324967138636055\
1145508706362018540498696043776980521464405852627147161556994835657433\
1200967298
131.1
141.1
1537842935130118.1187478621432354
161.1
173746289134067138046.138375863945672398456712389456273486293
18-2
19-19
20-1287904651762470260258
21100000000000000000000000000000000000000000000000000000000000.0000000\
2200000000000000000000000000000000000000000000000000000000000000000000\
23000000000000000000000000000000000000000000000
24100000000000000000000000000000000000000000000000000000000000.0000000\
2500000000000000000000000000000000000000000000000000000000000000000000\
26000000000000000000000000000000000000000000000
27100000000000000000000000000000000000000000000000000000000000.0000000\
2800000000000000000000000000000000000000000000000000000000000000000000\
29000000000000000000000000000000000000000009999
3099999999999999999999999999999999999999999999999999999999999.99999999\
3199999999999999999999999999999999999999999999999999000000000000000000\
3200000000000000000000000000000000000000009999
3399999999999999999999999999999999999990000000000000000000000.00000000\
3400000000000000000000000000000000000000000000000000000000000000000000\
3500000000000000000000000000000000000000009999
36122761518
37-14338.391079082
38-2422295.6865057444
diff --git a/testsuite/bc_arctangent.bc b/testsuite/bc_arctangent.bc
new file mode 100644
index 000000000..f665ea90b
--- /dev/null
+++ b/testsuite/bc_arctangent.bc
@@ -0,0 +1,26 @@
1a(.267)
2a(1)
3scale = 64
4a(.267)
5a(1)
6scale = 100
7a(.267)
8a(1)
9scale = 20
10a(0)
11a(.5)
12a(0.577350269189625764509148780501)
13a(1.5)
14a(1.7320508075688772935274463415)
15a(2)
16a(3)
17a(1000)
18a(-.5)
19a(-0.577350269189625764509148780501)
20a(-1.5)
21a(-1.7320508075688772935274463415)
22a(-2)
23a(-3)
24a(-1000)
25a(-3249917614.2821897119)
26a(-694706362.1974670468)
diff --git a/testsuite/bc_arctangent_results.txt b/testsuite/bc_arctangent_results.txt
new file mode 100644
index 000000000..e77c63779
--- /dev/null
+++ b/testsuite/bc_arctangent_results.txt
@@ -0,0 +1,25 @@
1.26091356923294057959
2.78539816339744830961
3.2609135692329405795967852677779865639774740239882445822329882917
4.7853981633974483096156608458198757210492923498437764552437361480
5.2609135692329405795967852677779865639774740239882445822329882917230\
6650591934644905491823044536954978
7.7853981633974483096156608458198757210492923498437764552437361480769\
8541015715522496570087063355292669
90
10.46364760900080611621
11.52359877559829887307
12.98279372324732906798
131.04719755119659774615
141.10714871779409050301
151.24904577239825442582
161.56979632712822975256
17-.46364760900080611621
18-.52359877559829887307
19-.98279372324732906798
20-1.04719755119659774615
21-1.10714871779409050301
22-1.24904577239825442582
23-1.56979632712822975256
24-1.57079632648719651151
25-1.57079632535543952711
diff --git a/testsuite/bc_array.bc b/testsuite/bc_array.bc
new file mode 100644
index 000000000..3bb680178
--- /dev/null
+++ b/testsuite/bc_array.bc
@@ -0,0 +1,35 @@
1#! /usr/bin/bc -q
2
3define z(a[]) {
4 for (i = 0; i < l; ++i) {
5 a[i]
6 }
7}
8
9define x(a[]) {
10
11 for (i = 0; i < l; ++i) {
12 a[i] = -i
13 }
14
15 z(a[])
16}
17
18for (i = 0; i < 101; ++i) {
19 a[i] = i
20}
21
22a[104] = 204
23
24l = length(a[])
25
26for (i = 0; i <= l; ++i) {
27 a[i]
28}
29
30z(a[])
31x(a[])
32z(a[])
33l
34
35halt
diff --git a/testsuite/bc_array_results.txt b/testsuite/bc_array_results.txt
new file mode 100644
index 000000000..a757b7fb5
--- /dev/null
+++ b/testsuite/bc_array_results.txt
@@ -0,0 +1,426 @@
10
21
32
43
54
65
76
87
98
109
1110
1211
1312
1413
1514
1615
1716
1817
1918
2019
2120
2221
2322
2423
2524
2625
2726
2827
2928
3029
3130
3231
3332
3433
3534
3635
3736
3837
3938
4039
4140
4241
4342
4443
4544
4645
4746
4847
4948
5049
5150
5251
5352
5453
5554
5655
5756
5857
5958
6059
6160
6261
6362
6463
6564
6665
6766
6867
6968
7069
7170
7271
7372
7473
7574
7675
7776
7877
7978
8079
8180
8281
8382
8483
8584
8685
8786
8887
8988
9089
9190
9291
9392
9493
9594
9695
9796
9897
9998
10099
101100
1020
1030
1040
105204
1060
1070
1081
1092
1103
1114
1125
1136
1147
1158
1169
11710
11811
11912
12013
12114
12215
12316
12417
12518
12619
12720
12821
12922
13023
13124
13225
13326
13427
13528
13629
13730
13831
13932
14033
14134
14235
14336
14437
14538
14639
14740
14841
14942
15043
15144
15245
15346
15447
15548
15649
15750
15851
15952
16053
16154
16255
16356
16457
16558
16659
16760
16861
16962
17063
17164
17265
17366
17467
17568
17669
17770
17871
17972
18073
18174
18275
18376
18477
18578
18679
18780
18881
18982
19083
19184
19285
19386
19487
19588
19689
19790
19891
19992
20093
20194
20295
20396
20497
20598
20699
207100
2080
2090
2100
211204
2120
2130
214-1
215-2
216-3
217-4
218-5
219-6
220-7
221-8
222-9
223-10
224-11
225-12
226-13
227-14
228-15
229-16
230-17
231-18
232-19
233-20
234-21
235-22
236-23
237-24
238-25
239-26
240-27
241-28
242-29
243-30
244-31
245-32
246-33
247-34
248-35
249-36
250-37
251-38
252-39
253-40
254-41
255-42
256-43
257-44
258-45
259-46
260-47
261-48
262-49
263-50
264-51
265-52
266-53
267-54
268-55
269-56
270-57
271-58
272-59
273-60
274-61
275-62
276-63
277-64
278-65
279-66
280-67
281-68
282-69
283-70
284-71
285-72
286-73
287-74
288-75
289-76
290-77
291-78
292-79
293-80
294-81
295-82
296-83
297-84
298-85
299-86
300-87
301-88
302-89
303-90
304-91
305-92
306-93
307-94
308-95
309-96
310-97
311-98
312-99
313-100
314-101
315-102
316-103
317-104
3180
3190
3200
3211
3222
3233
3244
3255
3266
3277
3288
3299
33010
33111
33212
33313
33414
33515
33616
33717
33818
33919
34020
34121
34222
34323
34424
34525
34626
34727
34828
34929
35030
35131
35232
35333
35434
35535
35636
35737
35838
35939
36040
36141
36242
36343
36444
36545
36646
36747
36848
36949
37050
37151
37252
37353
37454
37555
37656
37757
37858
37959
38060
38161
38262
38363
38464
38565
38666
38767
38868
38969
39070
39171
39272
39373
39474
39575
39676
39777
39878
39979
40080
40181
40282
40383
40484
40585
40686
40787
40888
40989
41090
41191
41292
41393
41494
41595
41696
41797
41898
41999
420100
4210
4220
4230
424204
4250
426105
diff --git a/testsuite/bc_arrays.bc b/testsuite/bc_arrays.bc
new file mode 100644
index 000000000..26a284b8d
--- /dev/null
+++ b/testsuite/bc_arrays.bc
@@ -0,0 +1,10 @@
1a[0] = 1
2a[2-1] = 2
3
4a[0]+a[0]
5
6a[2-1]+a[2-1]
7
8a[5] = 2
9a[5.789]
10
diff --git a/testsuite/bc_arrays_results.txt b/testsuite/bc_arrays_results.txt
new file mode 100644
index 000000000..200035ffa
--- /dev/null
+++ b/testsuite/bc_arrays_results.txt
@@ -0,0 +1,3 @@
12
24
32
diff --git a/testsuite/bc_bessel.bc b/testsuite/bc_bessel.bc
new file mode 100644
index 000000000..a52fa356b
--- /dev/null
+++ b/testsuite/bc_bessel.bc
@@ -0,0 +1,844 @@
1j(0, 0)
2j(0, .5)
3j(0, -.5)
4j(0, 1)
5j(0, -1)
6j(0, 1.5)
7j(0, -1.5)
8j(0, 1.74)
9j(0, -1.74)
10j(0, 2)
11j(0, -2)
12j(0, 3.2345)
13j(0, -3.2345)
14j(0, 100)
15j(0, -100)
16j(0, -.5)
17j(0, .5)
18j(0, -1)
19j(0, 1)
20j(0, -1.5)
21j(0, 1.5)
22j(0, -1.74)
23j(0, 1.74)
24j(0, -2)
25j(0, 2)
26j(0, -3.2345)
27j(0, 3.2345)
28j(0, -100)
29j(0, 100)
30j(.5, 0)
31j(.5, .5)
32j(.5, -.5)
33j(.5, 1)
34j(.5, -1)
35j(.5, 1.5)
36j(.5, -1.5)
37j(.5, 1.74)
38j(.5, -1.74)
39j(.5, 2)
40j(.5, -2)
41j(.5, 3.2345)
42j(.5, -3.2345)
43j(.5, 100)
44j(.5, -100)
45j(.5, -.5)
46j(.5, .5)
47j(.5, -1)
48j(.5, 1)
49j(.5, -1.5)
50j(.5, 1.5)
51j(.5, -1.74)
52j(.5, 1.74)
53j(.5, -2)
54j(.5, 2)
55j(.5, -3.2345)
56j(.5, 3.2345)
57j(.5, -100)
58j(.5, 100)
59j(-.5, 0)
60j(-.5, .5)
61j(-.5, -.5)
62j(-.5, 1)
63j(-.5, -1)
64j(-.5, 1.5)
65j(-.5, -1.5)
66j(-.5, 1.74)
67j(-.5, -1.74)
68j(-.5, 2)
69j(-.5, -2)
70j(-.5, 3.2345)
71j(-.5, -3.2345)
72j(-.5, 100)
73j(-.5, -100)
74j(-.5, -.5)
75j(-.5, .5)
76j(-.5, -1)
77j(-.5, 1)
78j(-.5, -1.5)
79j(-.5, 1.5)
80j(-.5, -1.74)
81j(-.5, 1.74)
82j(-.5, -2)
83j(-.5, 2)
84j(-.5, -3.2345)
85j(-.5, 3.2345)
86j(-.5, -100)
87j(-.5, 100)
88j(1, 0)
89j(1, .5)
90j(1, -.5)
91j(1, 1)
92j(1, -1)
93j(1, 1.5)
94j(1, -1.5)
95j(1, 1.74)
96j(1, -1.74)
97j(1, 2)
98j(1, -2)
99j(1, 3.2345)
100j(1, -3.2345)
101j(1, 100)
102j(1, -100)
103j(1, -.5)
104j(1, .5)
105j(1, -1)
106j(1, 1)
107j(1, -1.5)
108j(1, 1.5)
109j(1, -1.74)
110j(1, 1.74)
111j(1, -2)
112j(1, 2)
113j(1, -3.2345)
114j(1, 3.2345)
115j(1, -100)
116j(1, 100)
117j(-1, 0)
118j(-1, .5)
119j(-1, -.5)
120j(-1, 1)
121j(-1, -1)
122j(-1, 1.5)
123j(-1, -1.5)
124j(-1, 1.74)
125j(-1, -1.74)
126j(-1, 2)
127j(-1, -2)
128j(-1, 3.2345)
129j(-1, -3.2345)
130j(-1, 100)
131j(-1, -100)
132j(-1, -.5)
133j(-1, .5)
134j(-1, -1)
135j(-1, 1)
136j(-1, -1.5)
137j(-1, 1.5)
138j(-1, -1.74)
139j(-1, 1.74)
140j(-1, -2)
141j(-1, 2)
142j(-1, -3.2345)
143j(-1, 3.2345)
144j(-1, -100)
145j(-1, 100)
146j(1.5, 0)
147j(1.5, .5)
148j(1.5, -.5)
149j(1.5, 1)
150j(1.5, -1)
151j(1.5, 1.5)
152j(1.5, -1.5)
153j(1.5, 1.74)
154j(1.5, -1.74)
155j(1.5, 2)
156j(1.5, -2)
157j(1.5, 3.2345)
158j(1.5, -3.2345)
159j(1.5, 100)
160j(1.5, -100)
161j(1.5, -.5)
162j(1.5, .5)
163j(1.5, -1)
164j(1.5, 1)
165j(1.5, -1.5)
166j(1.5, 1.5)
167j(1.5, -1.74)
168j(1.5, 1.74)
169j(1.5, -2)
170j(1.5, 2)
171j(1.5, -3.2345)
172j(1.5, 3.2345)
173j(1.5, -100)
174j(1.5, 100)
175j(-1.5, 0)
176j(-1.5, .5)
177j(-1.5, -.5)
178j(-1.5, 1)
179j(-1.5, -1)
180j(-1.5, 1.5)
181j(-1.5, -1.5)
182j(-1.5, 1.74)
183j(-1.5, -1.74)
184j(-1.5, 2)
185j(-1.5, -2)
186j(-1.5, 3.2345)
187j(-1.5, -3.2345)
188j(-1.5, 100)
189j(-1.5, -100)
190j(-1.5, -.5)
191j(-1.5, .5)
192j(-1.5, -1)
193j(-1.5, 1)
194j(-1.5, -1.5)
195j(-1.5, 1.5)
196j(-1.5, -1.74)
197j(-1.5, 1.74)
198j(-1.5, -2)
199j(-1.5, 2)
200j(-1.5, -3.2345)
201j(-1.5, 3.2345)
202j(-1.5, -100)
203j(-1.5, 100)
204j(1.74, 0)
205j(1.74, .5)
206j(1.74, -.5)
207j(1.74, 1)
208j(1.74, -1)
209j(1.74, 1.5)
210j(1.74, -1.5)
211j(1.74, 1.74)
212j(1.74, -1.74)
213j(1.74, 2)
214j(1.74, -2)
215j(1.74, 3.2345)
216j(1.74, -3.2345)
217j(1.74, 100)
218j(1.74, -100)
219j(1.74, -.5)
220j(1.74, .5)
221j(1.74, -1)
222j(1.74, 1)
223j(1.74, -1.5)
224j(1.74, 1.5)
225j(1.74, -1.74)
226j(1.74, 1.74)
227j(1.74, -2)
228j(1.74, 2)
229j(1.74, -3.2345)
230j(1.74, 3.2345)
231j(1.74, -100)
232j(1.74, 100)
233j(-1.74, 0)
234j(-1.74, .5)
235j(-1.74, -.5)
236j(-1.74, 1)
237j(-1.74, -1)
238j(-1.74, 1.5)
239j(-1.74, -1.5)
240j(-1.74, 1.74)
241j(-1.74, -1.74)
242j(-1.74, 2)
243j(-1.74, -2)
244j(-1.74, 3.2345)
245j(-1.74, -3.2345)
246j(-1.74, 100)
247j(-1.74, -100)
248j(-1.74, -.5)
249j(-1.74, .5)
250j(-1.74, -1)
251j(-1.74, 1)
252j(-1.74, -1.5)
253j(-1.74, 1.5)
254j(-1.74, -1.74)
255j(-1.74, 1.74)
256j(-1.74, -2)
257j(-1.74, 2)
258j(-1.74, -3.2345)
259j(-1.74, 3.2345)
260j(-1.74, -100)
261j(-1.74, 100)
262j(2, 0)
263j(2, .5)
264j(2, -.5)
265j(2, 1)
266j(2, -1)
267j(2, 1.5)
268j(2, -1.5)
269j(2, 1.74)
270j(2, -1.74)
271j(2, 2)
272j(2, -2)
273j(2, 3.2345)
274j(2, -3.2345)
275j(2, 100)
276j(2, -100)
277j(2, -.5)
278j(2, .5)
279j(2, -1)
280j(2, 1)
281j(2, -1.5)
282j(2, 1.5)
283j(2, -1.74)
284j(2, 1.74)
285j(2, -2)
286j(2, 2)
287j(2, -3.2345)
288j(2, 3.2345)
289j(2, -100)
290j(2, 100)
291j(-2, 0)
292j(-2, .5)
293j(-2, -.5)
294j(-2, 1)
295j(-2, -1)
296j(-2, 1.5)
297j(-2, -1.5)
298j(-2, 1.74)
299j(-2, -1.74)
300j(-2, 2)
301j(-2, -2)
302j(-2, 3.2345)
303j(-2, -3.2345)
304j(-2, 100)
305j(-2, -100)
306j(-2, -.5)
307j(-2, .5)
308j(-2, -1)
309j(-2, 1)
310j(-2, -1.5)
311j(-2, 1.5)
312j(-2, -1.74)
313j(-2, 1.74)
314j(-2, -2)
315j(-2, 2)
316j(-2, -3.2345)
317j(-2, 3.2345)
318j(-2, -100)
319j(-2, 100)
320j(3.2345, 0)
321j(3.2345, .5)
322j(3.2345, -.5)
323j(3.2345, 1)
324j(3.2345, -1)
325j(3.2345, 1.5)
326j(3.2345, -1.5)
327j(3.2345, 1.74)
328j(3.2345, -1.74)
329j(3.2345, 2)
330j(3.2345, -2)
331j(3.2345, 3.2345)
332j(3.2345, -3.2345)
333j(3.2345, 100)
334j(3.2345, -100)
335j(3.2345, -.5)
336j(3.2345, .5)
337j(3.2345, -1)
338j(3.2345, 1)
339j(3.2345, -1.5)
340j(3.2345, 1.5)
341j(3.2345, -1.74)
342j(3.2345, 1.74)
343j(3.2345, -2)
344j(3.2345, 2)
345j(3.2345, -3.2345)
346j(3.2345, 3.2345)
347j(3.2345, -100)
348j(3.2345, 100)
349j(-3.2345, 0)
350j(-3.2345, .5)
351j(-3.2345, -.5)
352j(-3.2345, 1)
353j(-3.2345, -1)
354j(-3.2345, 1.5)
355j(-3.2345, -1.5)
356j(-3.2345, 1.74)
357j(-3.2345, -1.74)
358j(-3.2345, 2)
359j(-3.2345, -2)
360j(-3.2345, 3.2345)
361j(-3.2345, -3.2345)
362j(-3.2345, 100)
363j(-3.2345, -100)
364j(-3.2345, -.5)
365j(-3.2345, .5)
366j(-3.2345, -1)
367j(-3.2345, 1)
368j(-3.2345, -1.5)
369j(-3.2345, 1.5)
370j(-3.2345, -1.74)
371j(-3.2345, 1.74)
372j(-3.2345, -2)
373j(-3.2345, 2)
374j(-3.2345, -3.2345)
375j(-3.2345, 3.2345)
376j(-3.2345, -100)
377j(-3.2345, 100)
378j(100, 0)
379j(100, .5)
380j(100, -.5)
381j(100, 1)
382j(100, -1)
383j(100, 1.5)
384j(100, -1.5)
385j(100, 1.74)
386j(100, -1.74)
387j(100, 2)
388j(100, -2)
389j(100, 3.2345)
390j(100, -3.2345)
391j(100, 100)
392j(100, -100)
393j(100, -.5)
394j(100, .5)
395j(100, -1)
396j(100, 1)
397j(100, -1.5)
398j(100, 1.5)
399j(100, -1.74)
400j(100, 1.74)
401j(100, -2)
402j(100, 2)
403j(100, -3.2345)
404j(100, 3.2345)
405j(100, -100)
406j(100, 100)
407j(-100, 0)
408j(-100, .5)
409j(-100, -.5)
410j(-100, 1)
411j(-100, -1)
412j(-100, 1.5)
413j(-100, -1.5)
414j(-100, 1.74)
415j(-100, -1.74)
416j(-100, 2)
417j(-100, -2)
418j(-100, 3.2345)
419j(-100, -3.2345)
420j(-100, 100)
421j(-100, -100)
422j(-100, -.5)
423j(-100, .5)
424j(-100, -1)
425j(-100, 1)
426j(-100, -1.5)
427j(-100, 1.5)
428j(-100, -1.74)
429j(-100, 1.74)
430j(-100, -2)
431j(-100, 2)
432j(-100, -3.2345)
433j(-100, 3.2345)
434j(-100, -100)
435j(-100, 100)
436j(-.5, 0)
437j(-.5, .5)
438j(-.5, -.5)
439j(-.5, 1)
440j(-.5, -1)
441j(-.5, 1.5)
442j(-.5, -1.5)
443j(-.5, 1.74)
444j(-.5, -1.74)
445j(-.5, 2)
446j(-.5, -2)
447j(-.5, 3.2345)
448j(-.5, -3.2345)
449j(-.5, 100)
450j(-.5, -100)
451j(-.5, -.5)
452j(-.5, .5)
453j(-.5, -1)
454j(-.5, 1)
455j(-.5, -1.5)
456j(-.5, 1.5)
457j(-.5, -1.74)
458j(-.5, 1.74)
459j(-.5, -2)
460j(-.5, 2)
461j(-.5, -3.2345)
462j(-.5, 3.2345)
463j(-.5, -100)
464j(-.5, 100)
465j(.5, 0)
466j(.5, .5)
467j(.5, -.5)
468j(.5, 1)
469j(.5, -1)
470j(.5, 1.5)
471j(.5, -1.5)
472j(.5, 1.74)
473j(.5, -1.74)
474j(.5, 2)
475j(.5, -2)
476j(.5, 3.2345)
477j(.5, -3.2345)
478j(.5, 100)
479j(.5, -100)
480j(.5, -.5)
481j(.5, .5)
482j(.5, -1)
483j(.5, 1)
484j(.5, -1.5)
485j(.5, 1.5)
486j(.5, -1.74)
487j(.5, 1.74)
488j(.5, -2)
489j(.5, 2)
490j(.5, -3.2345)
491j(.5, 3.2345)
492j(.5, -100)
493j(.5, 100)
494j(-1, 0)
495j(-1, .5)
496j(-1, -.5)
497j(-1, 1)
498j(-1, -1)
499j(-1, 1.5)
500j(-1, -1.5)
501j(-1, 1.74)
502j(-1, -1.74)
503j(-1, 2)
504j(-1, -2)
505j(-1, 3.2345)
506j(-1, -3.2345)
507j(-1, 100)
508j(-1, -100)
509j(-1, -.5)
510j(-1, .5)
511j(-1, -1)
512j(-1, 1)
513j(-1, -1.5)
514j(-1, 1.5)
515j(-1, -1.74)
516j(-1, 1.74)
517j(-1, -2)
518j(-1, 2)
519j(-1, -3.2345)
520j(-1, 3.2345)
521j(-1, -100)
522j(-1, 100)
523j(1, 0)
524j(1, .5)
525j(1, -.5)
526j(1, 1)
527j(1, -1)
528j(1, 1.5)
529j(1, -1.5)
530j(1, 1.74)
531j(1, -1.74)
532j(1, 2)
533j(1, -2)
534j(1, 3.2345)
535j(1, -3.2345)
536j(1, 100)
537j(1, -100)
538j(1, -.5)
539j(1, .5)
540j(1, -1)
541j(1, 1)
542j(1, -1.5)
543j(1, 1.5)
544j(1, -1.74)
545j(1, 1.74)
546j(1, -2)
547j(1, 2)
548j(1, -3.2345)
549j(1, 3.2345)
550j(1, -100)
551j(1, 100)
552j(-1.5, 0)
553j(-1.5, .5)
554j(-1.5, -.5)
555j(-1.5, 1)
556j(-1.5, -1)
557j(-1.5, 1.5)
558j(-1.5, -1.5)
559j(-1.5, 1.74)
560j(-1.5, -1.74)
561j(-1.5, 2)
562j(-1.5, -2)
563j(-1.5, 3.2345)
564j(-1.5, -3.2345)
565j(-1.5, 100)
566j(-1.5, -100)
567j(-1.5, -.5)
568j(-1.5, .5)
569j(-1.5, -1)
570j(-1.5, 1)
571j(-1.5, -1.5)
572j(-1.5, 1.5)
573j(-1.5, -1.74)
574j(-1.5, 1.74)
575j(-1.5, -2)
576j(-1.5, 2)
577j(-1.5, -3.2345)
578j(-1.5, 3.2345)
579j(-1.5, -100)
580j(-1.5, 100)
581j(1.5, 0)
582j(1.5, .5)
583j(1.5, -.5)
584j(1.5, 1)
585j(1.5, -1)
586j(1.5, 1.5)
587j(1.5, -1.5)
588j(1.5, 1.74)
589j(1.5, -1.74)
590j(1.5, 2)
591j(1.5, -2)
592j(1.5, 3.2345)
593j(1.5, -3.2345)
594j(1.5, 100)
595j(1.5, -100)
596j(1.5, -.5)
597j(1.5, .5)
598j(1.5, -1)
599j(1.5, 1)
600j(1.5, -1.5)
601j(1.5, 1.5)
602j(1.5, -1.74)
603j(1.5, 1.74)
604j(1.5, -2)
605j(1.5, 2)
606j(1.5, -3.2345)
607j(1.5, 3.2345)
608j(1.5, -100)
609j(1.5, 100)
610j(-1.74, 0)
611j(-1.74, .5)
612j(-1.74, -.5)
613j(-1.74, 1)
614j(-1.74, -1)
615j(-1.74, 1.5)
616j(-1.74, -1.5)
617j(-1.74, 1.74)
618j(-1.74, -1.74)
619j(-1.74, 2)
620j(-1.74, -2)
621j(-1.74, 3.2345)
622j(-1.74, -3.2345)
623j(-1.74, 100)
624j(-1.74, -100)
625j(-1.74, -.5)
626j(-1.74, .5)
627j(-1.74, -1)
628j(-1.74, 1)
629j(-1.74, -1.5)
630j(-1.74, 1.5)
631j(-1.74, -1.74)
632j(-1.74, 1.74)
633j(-1.74, -2)
634j(-1.74, 2)
635j(-1.74, -3.2345)
636j(-1.74, 3.2345)
637j(-1.74, -100)
638j(-1.74, 100)
639j(1.74, 0)
640j(1.74, .5)
641j(1.74, -.5)
642j(1.74, 1)
643j(1.74, -1)
644j(1.74, 1.5)
645j(1.74, -1.5)
646j(1.74, 1.74)
647j(1.74, -1.74)
648j(1.74, 2)
649j(1.74, -2)
650j(1.74, 3.2345)
651j(1.74, -3.2345)
652j(1.74, 100)
653j(1.74, -100)
654j(1.74, -.5)
655j(1.74, .5)
656j(1.74, -1)
657j(1.74, 1)
658j(1.74, -1.5)
659j(1.74, 1.5)
660j(1.74, -1.74)
661j(1.74, 1.74)
662j(1.74, -2)
663j(1.74, 2)
664j(1.74, -3.2345)
665j(1.74, 3.2345)
666j(1.74, -100)
667j(1.74, 100)
668j(-2, 0)
669j(-2, .5)
670j(-2, -.5)
671j(-2, 1)
672j(-2, -1)
673j(-2, 1.5)
674j(-2, -1.5)
675j(-2, 1.74)
676j(-2, -1.74)
677j(-2, 2)
678j(-2, -2)
679j(-2, 3.2345)
680j(-2, -3.2345)
681j(-2, 100)
682j(-2, -100)
683j(-2, -.5)
684j(-2, .5)
685j(-2, -1)
686j(-2, 1)
687j(-2, -1.5)
688j(-2, 1.5)
689j(-2, -1.74)
690j(-2, 1.74)
691j(-2, -2)
692j(-2, 2)
693j(-2, -3.2345)
694j(-2, 3.2345)
695j(-2, -100)
696j(-2, 100)
697j(2, 0)
698j(2, .5)
699j(2, -.5)
700j(2, 1)
701j(2, -1)
702j(2, 1.5)
703j(2, -1.5)
704j(2, 1.74)
705j(2, -1.74)
706j(2, 2)
707j(2, -2)
708j(2, 3.2345)
709j(2, -3.2345)
710j(2, 100)
711j(2, -100)
712j(2, -.5)
713j(2, .5)
714j(2, -1)
715j(2, 1)
716j(2, -1.5)
717j(2, 1.5)
718j(2, -1.74)
719j(2, 1.74)
720j(2, -2)
721j(2, 2)
722j(2, -3.2345)
723j(2, 3.2345)
724j(2, -100)
725j(2, 100)
726j(-3.2345, 0)
727j(-3.2345, .5)
728j(-3.2345, -.5)
729j(-3.2345, 1)
730j(-3.2345, -1)
731j(-3.2345, 1.5)
732j(-3.2345, -1.5)
733j(-3.2345, 1.74)
734j(-3.2345, -1.74)
735j(-3.2345, 2)
736j(-3.2345, -2)
737j(-3.2345, 3.2345)
738j(-3.2345, -3.2345)
739j(-3.2345, 100)
740j(-3.2345, -100)
741j(-3.2345, -.5)
742j(-3.2345, .5)
743j(-3.2345, -1)
744j(-3.2345, 1)
745j(-3.2345, -1.5)
746j(-3.2345, 1.5)
747j(-3.2345, -1.74)
748j(-3.2345, 1.74)
749j(-3.2345, -2)
750j(-3.2345, 2)
751j(-3.2345, -3.2345)
752j(-3.2345, 3.2345)
753j(-3.2345, -100)
754j(-3.2345, 100)
755j(3.2345, 0)
756j(3.2345, .5)
757j(3.2345, -.5)
758j(3.2345, 1)
759j(3.2345, -1)
760j(3.2345, 1.5)
761j(3.2345, -1.5)
762j(3.2345, 1.74)
763j(3.2345, -1.74)
764j(3.2345, 2)
765j(3.2345, -2)
766j(3.2345, 3.2345)
767j(3.2345, -3.2345)
768j(3.2345, 100)
769j(3.2345, -100)
770j(3.2345, -.5)
771j(3.2345, .5)
772j(3.2345, -1)
773j(3.2345, 1)
774j(3.2345, -1.5)
775j(3.2345, 1.5)
776j(3.2345, -1.74)
777j(3.2345, 1.74)
778j(3.2345, -2)
779j(3.2345, 2)
780j(3.2345, -3.2345)
781j(3.2345, 3.2345)
782j(3.2345, -100)
783j(3.2345, 100)
784j(-100, 0)
785j(-100, .5)
786j(-100, -.5)
787j(-100, 1)
788j(-100, -1)
789j(-100, 1.5)
790j(-100, -1.5)
791j(-100, 1.74)
792j(-100, -1.74)
793j(-100, 2)
794j(-100, -2)
795j(-100, 3.2345)
796j(-100, -3.2345)
797j(-100, 100)
798j(-100, -100)
799j(-100, -.5)
800j(-100, .5)
801j(-100, -1)
802j(-100, 1)
803j(-100, -1.5)
804j(-100, 1.5)
805j(-100, -1.74)
806j(-100, 1.74)
807j(-100, -2)
808j(-100, 2)
809j(-100, -3.2345)
810j(-100, 3.2345)
811j(-100, -100)
812j(-100, 100)
813j(100, 0)
814j(100, .5)
815j(100, -.5)
816j(100, 1)
817j(100, -1)
818j(100, 1.5)
819j(100, -1.5)
820j(100, 1.74)
821j(100, -1.74)
822j(100, 2)
823j(100, -2)
824j(100, 3.2345)
825j(100, -3.2345)
826j(100, 100)
827j(100, -100)
828j(100, -.5)
829j(100, .5)
830j(100, -1)
831j(100, 1)
832j(100, -1.5)
833j(100, 1.5)
834j(100, -1.74)
835j(100, 1.74)
836j(100, -2)
837j(100, 2)
838j(100, -3.2345)
839j(100, 3.2345)
840j(100, -100)
841j(100, 100)
842j(3, 0.75)
843scale = 0; j(40, 0.75)
844halt \ No newline at end of file
diff --git a/testsuite/bc_bessel_results.txt b/testsuite/bc_bessel_results.txt
new file mode 100644
index 000000000..4bbb3c86b
--- /dev/null
+++ b/testsuite/bc_bessel_results.txt
@@ -0,0 +1,843 @@
11.00000000000000000000
2.93846980724081290422
3.93846980724081290422
4.76519768655796655144
5.76519768655796655144
6.51182767173591812874
7.51182767173591812874
8.37483214773176892693
9.37483214773176892693
10.22389077914123566805
11.22389077914123566805
12-.32896462175888702221
13-.32896462175888702221
14.01998585030422312242
15.01998585030422312242
16.93846980724081290422
17.93846980724081290422
18.76519768655796655144
19.76519768655796655144
20.51182767173591812874
21.51182767173591812874
22.37483214773176892693
23.37483214773176892693
24.22389077914123566805
25.22389077914123566805
26-.32896462175888702221
27-.32896462175888702221
28.01998585030422312242
29.01998585030422312242
301.00000000000000000000
31.93846980724081290422
32.93846980724081290422
33.76519768655796655144
34.76519768655796655144
35.51182767173591812874
36.51182767173591812874
37.37483214773176892693
38.37483214773176892693
39.22389077914123566805
40.22389077914123566805
41-.32896462175888702221
42-.32896462175888702221
43.01998585030422312242
44.01998585030422312242
45.93846980724081290422
46.93846980724081290422
47.76519768655796655144
48.76519768655796655144
49.51182767173591812874
50.51182767173591812874
51.37483214773176892693
52.37483214773176892693
53.22389077914123566805
54.22389077914123566805
55-.32896462175888702221
56-.32896462175888702221
57.01998585030422312242
58.01998585030422312242
591.00000000000000000000
60.93846980724081290422
61.93846980724081290422
62.76519768655796655144
63.76519768655796655144
64.51182767173591812874
65.51182767173591812874
66.37483214773176892693
67.37483214773176892693
68.22389077914123566805
69.22389077914123566805
70-.32896462175888702221
71-.32896462175888702221
72.01998585030422312242
73.01998585030422312242
74.93846980724081290422
75.93846980724081290422
76.76519768655796655144
77.76519768655796655144
78.51182767173591812874
79.51182767173591812874
80.37483214773176892693
81.37483214773176892693
82.22389077914123566805
83.22389077914123566805
84-.32896462175888702221
85-.32896462175888702221
86.01998585030422312242
87.01998585030422312242
880
89.24226845767487388638
90-.24226845767487388638
91.44005058574493351595
92-.44005058574493351595
93.55793650791009964199
94-.55793650791009964199
95.57976044202797131452
96-.57976044202797131452
97.57672480775687338720
98-.57672480775687338720
99.24741588607612652213
100-.24741588607612652213
101-.07714535201411215803
102.07714535201411215803
103-.24226845767487388638
104.24226845767487388638
105-.44005058574493351595
106.44005058574493351595
107-.55793650791009964199
108.55793650791009964199
109-.57976044202797131452
110.57976044202797131452
111-.57672480775687338720
112.57672480775687338720
113-.24741588607612652213
114.24741588607612652213
115.07714535201411215803
116-.07714535201411215803
1170
118-.24226845767487388638
119.24226845767487388638
120-.44005058574493351595
121.44005058574493351595
122-.55793650791009964199
123.55793650791009964199
124-.57976044202797131452
125.57976044202797131452
126-.57672480775687338720
127.57672480775687338720
128-.24741588607612652213
129.24741588607612652213
130.07714535201411215803
131-.07714535201411215803
132.24226845767487388638
133-.24226845767487388638
134.44005058574493351595
135-.44005058574493351595
136.55793650791009964199
137-.55793650791009964199
138.57976044202797131452
139-.57976044202797131452
140.57672480775687338720
141-.57672480775687338720
142.24741588607612652213
143-.24741588607612652213
144-.07714535201411215803
145.07714535201411215803
1460
147.24226845767487388638
148-.24226845767487388638
149.44005058574493351595
150-.44005058574493351595
151.55793650791009964199
152-.55793650791009964199
153.57976044202797131452
154-.57976044202797131452
155.57672480775687338720
156-.57672480775687338720
157.24741588607612652213
158-.24741588607612652213
159-.07714535201411215803
160.07714535201411215803
161-.24226845767487388638
162.24226845767487388638
163-.44005058574493351595
164.44005058574493351595
165-.55793650791009964199
166.55793650791009964199
167-.57976044202797131452
168.57976044202797131452
169-.57672480775687338720
170.57672480775687338720
171-.24741588607612652213
172.24741588607612652213
173.07714535201411215803
174-.07714535201411215803
1750
176-.24226845767487388638
177.24226845767487388638
178-.44005058574493351595
179.44005058574493351595
180-.55793650791009964199
181.55793650791009964199
182-.57976044202797131452
183.57976044202797131452
184-.57672480775687338720
185.57672480775687338720
186-.24741588607612652213
187.24741588607612652213
188.07714535201411215803
189-.07714535201411215803
190.24226845767487388638
191-.24226845767487388638
192.44005058574493351595
193-.44005058574493351595
194.55793650791009964199
195-.55793650791009964199
196.57976044202797131452
197-.57976044202797131452
198.57672480775687338720
199-.57672480775687338720
200.24741588607612652213
201-.24741588607612652213
202-.07714535201411215803
203.07714535201411215803
2040
205.24226845767487388638
206-.24226845767487388638
207.44005058574493351595
208-.44005058574493351595
209.55793650791009964199
210-.55793650791009964199
211.57976044202797131452
212-.57976044202797131452
213.57672480775687338720
214-.57672480775687338720
215.24741588607612652213
216-.24741588607612652213
217-.07714535201411215803
218.07714535201411215803
219-.24226845767487388638
220.24226845767487388638
221-.44005058574493351595
222.44005058574493351595
223-.55793650791009964199
224.55793650791009964199
225-.57976044202797131452
226.57976044202797131452
227-.57672480775687338720
228.57672480775687338720
229-.24741588607612652213
230.24741588607612652213
231.07714535201411215803
232-.07714535201411215803
2330
234-.24226845767487388638
235.24226845767487388638
236-.44005058574493351595
237.44005058574493351595
238-.55793650791009964199
239.55793650791009964199
240-.57976044202797131452
241.57976044202797131452
242-.57672480775687338720
243.57672480775687338720
244-.24741588607612652213
245.24741588607612652213
246.07714535201411215803
247-.07714535201411215803
248.24226845767487388638
249-.24226845767487388638
250.44005058574493351595
251-.44005058574493351595
252.55793650791009964199
253-.55793650791009964199
254.57976044202797131452
255-.57976044202797131452
256.57672480775687338720
257-.57672480775687338720
258.24741588607612652213
259-.24741588607612652213
260-.07714535201411215803
261.07714535201411215803
2620
263.03060402345868264130
264.03060402345868264130
265.11490348493190048046
266.11490348493190048046
267.23208767214421472723
268.23208767214421472723
269.29155916494406017021
270.29155916494406017021
271.35283402861563771915
272.35283402861563771915
273.48195017505993913050
274.48195017505993913050
275-.02152875734450536558
276-.02152875734450536558
277.03060402345868264130
278.03060402345868264130
279.11490348493190048046
280.11490348493190048046
281.23208767214421472723
282.23208767214421472723
283.29155916494406017021
284.29155916494406017021
285.35283402861563771915
286.35283402861563771915
287.48195017505993913050
288.48195017505993913050
289-.02152875734450536558
290-.02152875734450536558
2910
292.03060402345868264130
293.03060402345868264130
294.11490348493190048046
295.11490348493190048046
296.23208767214421472723
297.23208767214421472723
298.29155916494406017021
299.29155916494406017021
300.35283402861563771915
301.35283402861563771915
302.48195017505993913050
303.48195017505993913050
304-.02152875734450536558
305-.02152875734450536558
306.03060402345868264130
307.03060402345868264130
308.11490348493190048046
309.11490348493190048046
310.23208767214421472723
311.23208767214421472723
312.29155916494406017021
313.29155916494406017021
314.35283402861563771915
315.35283402861563771915
316.48195017505993913050
317.48195017505993913050
318-.02152875734450536558
319-.02152875734450536558
3200
321.00256372999458724407
322-.00256372999458724407
323.01956335398266840591
324-.01956335398266840591
325.06096395114113963064
326-.06096395114113963064
327.09049051186641988137
328-.09049051186641988137
329.12894324947440205109
330-.12894324947440205109
331.34859607875298354805
332-.34859607875298354805
333.07628420172033194340
334-.07628420172033194340
335-.00256372999458724407
336.00256372999458724407
337-.01956335398266840591
338.01956335398266840591
339-.06096395114113963064
340.06096395114113963064
341-.09049051186641988137
342.09049051186641988137
343-.12894324947440205109
344.12894324947440205109
345-.34859607875298354805
346.34859607875298354805
347-.07628420172033194340
348.07628420172033194340
3490
350-.00256372999458724407
351.00256372999458724407
352-.01956335398266840591
353.01956335398266840591
354-.06096395114113963064
355.06096395114113963064
356-.09049051186641988137
357.09049051186641988137
358-.12894324947440205109
359.12894324947440205109
360-.34859607875298354805
361.34859607875298354805
362-.07628420172033194340
363.07628420172033194340
364.00256372999458724407
365-.00256372999458724407
366.01956335398266840591
367-.01956335398266840591
368.06096395114113963064
369-.06096395114113963064
370.09049051186641988137
371-.09049051186641988137
372.12894324947440205109
373-.12894324947440205109
374.34859607875298354805
375-.34859607875298354805
376.07628420172033194340
377-.07628420172033194340
3780
3790
3800
3810
3820
3830
3840
3850
3860
3870
3880
3890
3900
391.09636667329586155967
392.09636667329586155967
3930
3940
3950
3960
3970
3980
3990
4000
4010
4020
4030
4040
405.09636667329586155967
406.09636667329586155967
4070
4080
4090
4100
4110
4120
4130
4140
4150
4160
4170
4180
4190
420.09636667329586155967
421.09636667329586155967
4220
4230
4240
4250
4260
4270
4280
4290
4300
4310
4320
4330
434.09636667329586155967
435.09636667329586155967
4361.00000000000000000000
437.93846980724081290422
438.93846980724081290422
439.76519768655796655144
440.76519768655796655144
441.51182767173591812874
442.51182767173591812874
443.37483214773176892693
444.37483214773176892693
445.22389077914123566805
446.22389077914123566805
447-.32896462175888702221
448-.32896462175888702221
449.01998585030422312242
450.01998585030422312242
451.93846980724081290422
452.93846980724081290422
453.76519768655796655144
454.76519768655796655144
455.51182767173591812874
456.51182767173591812874
457.37483214773176892693
458.37483214773176892693
459.22389077914123566805
460.22389077914123566805
461-.32896462175888702221
462-.32896462175888702221
463.01998585030422312242
464.01998585030422312242
4651.00000000000000000000
466.93846980724081290422
467.93846980724081290422
468.76519768655796655144
469.76519768655796655144
470.51182767173591812874
471.51182767173591812874
472.37483214773176892693
473.37483214773176892693
474.22389077914123566805
475.22389077914123566805
476-.32896462175888702221
477-.32896462175888702221
478.01998585030422312242
479.01998585030422312242
480.93846980724081290422
481.93846980724081290422
482.76519768655796655144
483.76519768655796655144
484.51182767173591812874
485.51182767173591812874
486.37483214773176892693
487.37483214773176892693
488.22389077914123566805
489.22389077914123566805
490-.32896462175888702221
491-.32896462175888702221
492.01998585030422312242
493.01998585030422312242
4940
495-.24226845767487388638
496.24226845767487388638
497-.44005058574493351595
498.44005058574493351595
499-.55793650791009964199
500.55793650791009964199
501-.57976044202797131452
502.57976044202797131452
503-.57672480775687338720
504.57672480775687338720
505-.24741588607612652213
506.24741588607612652213
507.07714535201411215803
508-.07714535201411215803
509.24226845767487388638
510-.24226845767487388638
511.44005058574493351595
512-.44005058574493351595
513.55793650791009964199
514-.55793650791009964199
515.57976044202797131452
516-.57976044202797131452
517.57672480775687338720
518-.57672480775687338720
519.24741588607612652213
520-.24741588607612652213
521-.07714535201411215803
522.07714535201411215803
5230
524.24226845767487388638
525-.24226845767487388638
526.44005058574493351595
527-.44005058574493351595
528.55793650791009964199
529-.55793650791009964199
530.57976044202797131452
531-.57976044202797131452
532.57672480775687338720
533-.57672480775687338720
534.24741588607612652213
535-.24741588607612652213
536-.07714535201411215803
537.07714535201411215803
538-.24226845767487388638
539.24226845767487388638
540-.44005058574493351595
541.44005058574493351595
542-.55793650791009964199
543.55793650791009964199
544-.57976044202797131452
545.57976044202797131452
546-.57672480775687338720
547.57672480775687338720
548-.24741588607612652213
549.24741588607612652213
550.07714535201411215803
551-.07714535201411215803
5520
553-.24226845767487388638
554.24226845767487388638
555-.44005058574493351595
556.44005058574493351595
557-.55793650791009964199
558.55793650791009964199
559-.57976044202797131452
560.57976044202797131452
561-.57672480775687338720
562.57672480775687338720
563-.24741588607612652213
564.24741588607612652213
565.07714535201411215803
566-.07714535201411215803
567.24226845767487388638
568-.24226845767487388638
569.44005058574493351595
570-.44005058574493351595
571.55793650791009964199
572-.55793650791009964199
573.57976044202797131452
574-.57976044202797131452
575.57672480775687338720
576-.57672480775687338720
577.24741588607612652213
578-.24741588607612652213
579-.07714535201411215803
580.07714535201411215803
5810
582.24226845767487388638
583-.24226845767487388638
584.44005058574493351595
585-.44005058574493351595
586.55793650791009964199
587-.55793650791009964199
588.57976044202797131452
589-.57976044202797131452
590.57672480775687338720
591-.57672480775687338720
592.24741588607612652213
593-.24741588607612652213
594-.07714535201411215803
595.07714535201411215803
596-.24226845767487388638
597.24226845767487388638
598-.44005058574493351595
599.44005058574493351595
600-.55793650791009964199
601.55793650791009964199
602-.57976044202797131452
603.57976044202797131452
604-.57672480775687338720
605.57672480775687338720
606-.24741588607612652213
607.24741588607612652213
608.07714535201411215803
609-.07714535201411215803
6100
611-.24226845767487388638
612.24226845767487388638
613-.44005058574493351595
614.44005058574493351595
615-.55793650791009964199
616.55793650791009964199
617-.57976044202797131452
618.57976044202797131452
619-.57672480775687338720
620.57672480775687338720
621-.24741588607612652213
622.24741588607612652213
623.07714535201411215803
624-.07714535201411215803
625.24226845767487388638
626-.24226845767487388638
627.44005058574493351595
628-.44005058574493351595
629.55793650791009964199
630-.55793650791009964199
631.57976044202797131452
632-.57976044202797131452
633.57672480775687338720
634-.57672480775687338720
635.24741588607612652213
636-.24741588607612652213
637-.07714535201411215803
638.07714535201411215803
6390
640.24226845767487388638
641-.24226845767487388638
642.44005058574493351595
643-.44005058574493351595
644.55793650791009964199
645-.55793650791009964199
646.57976044202797131452
647-.57976044202797131452
648.57672480775687338720
649-.57672480775687338720
650.24741588607612652213
651-.24741588607612652213
652-.07714535201411215803
653.07714535201411215803
654-.24226845767487388638
655.24226845767487388638
656-.44005058574493351595
657.44005058574493351595
658-.55793650791009964199
659.55793650791009964199
660-.57976044202797131452
661.57976044202797131452
662-.57672480775687338720
663.57672480775687338720
664-.24741588607612652213
665.24741588607612652213
666.07714535201411215803
667-.07714535201411215803
6680
669.03060402345868264130
670.03060402345868264130
671.11490348493190048046
672.11490348493190048046
673.23208767214421472723
674.23208767214421472723
675.29155916494406017021
676.29155916494406017021
677.35283402861563771915
678.35283402861563771915
679.48195017505993913050
680.48195017505993913050
681-.02152875734450536558
682-.02152875734450536558
683.03060402345868264130
684.03060402345868264130
685.11490348493190048046
686.11490348493190048046
687.23208767214421472723
688.23208767214421472723
689.29155916494406017021
690.29155916494406017021
691.35283402861563771915
692.35283402861563771915
693.48195017505993913050
694.48195017505993913050
695-.02152875734450536558
696-.02152875734450536558
6970
698.03060402345868264130
699.03060402345868264130
700.11490348493190048046
701.11490348493190048046
702.23208767214421472723
703.23208767214421472723
704.29155916494406017021
705.29155916494406017021
706.35283402861563771915
707.35283402861563771915
708.48195017505993913050
709.48195017505993913050
710-.02152875734450536558
711-.02152875734450536558
712.03060402345868264130
713.03060402345868264130
714.11490348493190048046
715.11490348493190048046
716.23208767214421472723
717.23208767214421472723
718.29155916494406017021
719.29155916494406017021
720.35283402861563771915
721.35283402861563771915
722.48195017505993913050
723.48195017505993913050
724-.02152875734450536558
725-.02152875734450536558
7260
727-.00256372999458724407
728.00256372999458724407
729-.01956335398266840591
730.01956335398266840591
731-.06096395114113963064
732.06096395114113963064
733-.09049051186641988137
734.09049051186641988137
735-.12894324947440205109
736.12894324947440205109
737-.34859607875298354805
738.34859607875298354805
739-.07628420172033194340
740.07628420172033194340
741.00256372999458724407
742-.00256372999458724407
743.01956335398266840591
744-.01956335398266840591
745.06096395114113963064
746-.06096395114113963064
747.09049051186641988137
748-.09049051186641988137
749.12894324947440205109
750-.12894324947440205109
751.34859607875298354805
752-.34859607875298354805
753.07628420172033194340
754-.07628420172033194340
7550
756.00256372999458724407
757-.00256372999458724407
758.01956335398266840591
759-.01956335398266840591
760.06096395114113963064
761-.06096395114113963064
762.09049051186641988137
763-.09049051186641988137
764.12894324947440205109
765-.12894324947440205109
766.34859607875298354805
767-.34859607875298354805
768.07628420172033194340
769-.07628420172033194340
770-.00256372999458724407
771.00256372999458724407
772-.01956335398266840591
773.01956335398266840591
774-.06096395114113963064
775.06096395114113963064
776-.09049051186641988137
777.09049051186641988137
778-.12894324947440205109
779.12894324947440205109
780-.34859607875298354805
781.34859607875298354805
782-.07628420172033194340
783.07628420172033194340
7840
7850
7860
7870
7880
7890
7900
7910
7920
7930
7940
7950
7960
797.09636667329586155967
798.09636667329586155967
7990
8000
8010
8020
8030
8040
8050
8060
8070
8080
8090
8100
811.09636667329586155967
812.09636667329586155967
8130
8140
8150
8160
8170
8180
8190
8200
8210
8220
8230
8240
8250
826.09636667329586155967
827.09636667329586155967
8280
8290
8300
8310
8320
8330
8340
8350
8360
8370
8380
8390
840.09636667329586155967
841.09636667329586155967
842.00848438342327410884
8430
diff --git a/testsuite/bc_boolean.bc b/testsuite/bc_boolean.bc
new file mode 100644
index 000000000..021afc5f9
--- /dev/null
+++ b/testsuite/bc_boolean.bc
@@ -0,0 +1,181 @@
1!0
2!1
3!(-129)
44 && 5
54 && 0
60 && 5
74 && 5 && 7
84 && 0 && 7
90 && 5 && 7
104 && 5 && 0
110 && 0 && 7
124 && 0 && 0
130 && 5 && 0
14!4 && 5
15!4 && 0
16!0 && 5
174 && !5
184 && !0
190 && !5
20!4 && 5 && 7
21!4 && 0 && 7
22!0 && 5 && 7
23!4 && 5 && 0
24!0 && 0 && 7
25!4 && 0 && 0
26!0 && 5 && 0
274 && !5 && 7
284 && !0 && 7
290 && !5 && 7
304 && !5 && 0
310 && !0 && 7
324 && !0 && 0
330 && !5 && 0
344 && 5 && !7
354 && 0 && !7
360 && 5 && !7
374 && 5 && !0
380 && 0 && !7
394 && 0 && !0
400 && 5 && !0
41!4 && !5 && 7
42!4 && !0 && 7
43!0 && !5 && 7
44!4 && !5 && 0
45!0 && !0 && 7
46!4 && !0 && 0
47!0 && !5 && 0
48!4 && 5 && !7
49!4 && 0 && !7
50!0 && 5 && !7
51!4 && 5 && !0
52!0 && 0 && !7
53!4 && 0 && !0
54!0 && 5 && !0
554 && !5 && !7
564 && !0 && !7
570 && !5 && !7
584 && !5 && !0
590 && !0 && !7
604 && !0 && !0
610 && !5 && !0
62!4 && !5 && !7
63!4 && !0 && !7
64!0 && !5 && !7
65!4 && !5 && !0
66!0 && !0 && !7
67!4 && !0 && !0
68!0 && !5 && !0
693 < 4 && 7
703 && 4 >= 4
713 > 4 && 7
723 && 4 >= 5
733 < 4 && 0
740 && 4 >= 4
753 > 4 && 0
760 && 4 >= 5
773 > 4 && 0
780 && 4 < 4
793 >= 4 && 0
800 && 4 >= 5
813 < 4 && 7
823 && 4 >= 4
833 > 4 && 7 > 4
843 >= 2 && 4 >= 5
853 < 4 && 0 > -1
864 < 3 && 4 >= 4
873 > 4 && 3 == 3
883 != 3 && 4 >= 5
893 > 4 && 0 > 1
900 >= 0 && 4 < 4
913 >= 4 && 0 >= 1
920 <= -1 && 4 >= 5
934 || 5
944 || 0
950 || 5
964 || 5 || 7
974 || 0 || 7
980 || 5 || 7
994 || 5 || 0
1000 || 0 || 7
1014 || 0 || 0
1020 || 5 || 0
103!4 || 5
104!4 || 0
105!0 || 5
1064 || !5
1074 || !0
1080 || !5
109!4 || 5 || 7
110!4 || 0 || 7
111!0 || 5 || 7
112!4 || 5 || 0
113!0 || 0 || 7
114!4 || 0 || 0
115!0 || 5 || 0
1164 || !5 || 7
1174 || !0 || 7
1180 || !5 || 7
1194 || !5 || 0
1200 || !0 || 7
1214 || !0 || 0
1220 || !5 || 0
1234 || 5 || !7
1244 || 0 || !7
1250 || 5 || !7
1264 || 5 || !0
1270 || 0 || !7
1284 || 0 || !0
1290 || 5 || !0
130!4 || !5 || 7
131!4 || !0 || 7
132!0 || !5 || 7
133!4 || !5 || 0
134!0 || !0 || 7
135!4 || !0 || 0
136!0 || !5 || 0
137!4 || 5 || !7
138!4 || 0 || !7
139!0 || 5 || !7
140!4 || 5 || !0
141!0 || 0 || !7
142!4 || 0 || !0
143!0 || 5 || !0
1444 || !5 || !7
1454 || !0 || !7
1460 || !5 || !7
1474 || !5 || !0
1480 || !0 || !7
1494 || !0 || !0
1500 || !5 || !0
151!4 || !5 || !7
152!4 || !0 || !7
153!0 || !5 || !7
154!4 || !5 || !0
155!0 || !0 || !7
156!4 || !0 || !0
157!0 || !5 || !0
1583 < 4 || 7
1593 || 4 >= 4
1603 > 4 || 7
1613 || 4 >= 5
1623 < 4 || 0
1630 || 4 >= 4
1643 > 4 || 0
1650 || 4 >= 5
1663 > 4 || 0
1670 || 4 < 4
1683 >= 4 || 0
1690 || 4 >= 5
1703 < 4 || 7
1713 || 4 >= 4
1723 > 4 || 7 > 4
1733 >= 2 || 4 >= 5
1743 < 4 || 0 > -1
1754 < 3 || 4 >= 4
1763 > 4 || 3 == 3
1773 != 3 || 4 >= 5
1783 > 4 || 0 > 1
1790 >= 0 || 4 < 4
1803 >= 4 || 0 >= 1
1810 <= -1 || 4 >= 5
diff --git a/testsuite/bc_boolean_results.txt b/testsuite/bc_boolean_results.txt
new file mode 100644
index 000000000..ea59389c0
--- /dev/null
+++ b/testsuite/bc_boolean_results.txt
@@ -0,0 +1,181 @@
11
20
30
41
50
60
71
80
90
100
110
120
130
140
150
161
170
181
190
200
210
221
230
240
250
260
270
281
290
300
310
320
330
340
350
360
371
380
390
400
410
420
430
440
451
460
470
480
490
500
510
520
530
541
550
560
570
580
590
601
610
620
630
640
650
660
670
680
691
701
710
720
730
740
750
760
770
780
790
800
811
821
830
840
851
860
870
880
890
900
910
920
931
941
951
961
971
981
991
1001
1011
1021
1031
1040
1051
1061
1071
1080
1091
1101
1111
1121
1131
1140
1151
1161
1171
1181
1191
1201
1211
1220
1231
1241
1251
1261
1270
1281
1291
1301
1311
1321
1330
1341
1351
1361
1371
1380
1391
1401
1411
1421
1431
1441
1451
1460
1471
1481
1491
1501
1510
1521
1531
1541
1551
1561
1571
1581
1591
1601
1611
1621
1631
1640
1650
1660
1670
1680
1690
1701
1711
1721
1731
1741
1751
1761
1770
1780
1791
1800
1810
diff --git a/testsuite/bc_cosine.bc b/testsuite/bc_cosine.bc
new file mode 100644
index 000000000..9e67df4c6
--- /dev/null
+++ b/testsuite/bc_cosine.bc
@@ -0,0 +1,44 @@
1scale = 25
2p = 4 * a(1)
3scale = 20
4c(0)
5c(0.5)
6c(1)
7c(2)
8c(3)
9c(-0.5)
10c(-1)
11c(-2)
12c(-3)
13c(p / 7)
14c(-p / 7)
15c(p / 4)
16c(-p / 4)
17c(p / 3)
18c(-p / 3)
19c(p / 2)
20c(-p / 2)
21c(3 * p / 4)
22c(3 * -p / 4)
23c(p)
24c(-p)
25c(3 * p / 2)
26c(3 * -p / 2)
27c(7 * p / 4)
28c(7 * -p / 4)
29c(13 * p / 4)
30c(13 * -p / 4)
31c(2 * p)
32c(2 * -p)
33c(131231)
34c(-131231)
35c(859799894.3562378245)
36c(859799894.3562378245)
37c(4307371)
38c(3522556.3323810191)
39c(44961070)
40c(6918619.1574479809)
41c(190836996.2180244164)
42c(34934)
43c(2483599)
44c(13720376)
diff --git a/testsuite/bc_cosine_results.txt b/testsuite/bc_cosine_results.txt
new file mode 100644
index 000000000..43d640f00
--- /dev/null
+++ b/testsuite/bc_cosine_results.txt
@@ -0,0 +1,41 @@
11.00000000000000000000
2.87758256189037271611
3.54030230586813971740
4-.41614683654714238699
5-.98999249660044545727
6.87758256189037271611
7.54030230586813971740
8-.41614683654714238699
9-.98999249660044545727
10.90096886790241912623
11.90096886790241912623
12.70710678118654752440
13.70710678118654752440
14.50000000000000000000
15.50000000000000000000
160
170
18-.70710678118654752439
19-.70710678118654752439
20-1.00000000000000000000
21-1.00000000000000000000
220
230
24.70710678118654752439
25.70710678118654752439
26-.70710678118654752440
27-.70710678118654752440
281.00000000000000000000
291.00000000000000000000
30.92427123447397657316
31.92427123447397657316
32-.04198856352825241211
33-.04198856352825241211
34-.75581969921220636368
35-.01644924448939844182
36-.97280717522127222547
37-.92573947460230585966
38-.14343824233852988038
39.87259414746802343203
40.93542606623067050616
41-.52795540572178251550
diff --git a/testsuite/bc_decimal.bc b/testsuite/bc_decimal.bc
new file mode 100644
index 000000000..9b1788c67
--- /dev/null
+++ b/testsuite/bc_decimal.bc
@@ -0,0 +1,36 @@
10
20.0
3.00000
4000000000000000000000000.00000000000000000000000
5000000000000000000000000000135482346782356
6000000000000000000000000002
71
811
9123
107505
111023468723275435238491972521917846
124343472432431705867392073517038270398027352709027389273920739037937960379637893607893607893670530278200795207952702873892786172916728961783907893607418973587857386079679267926737520730925372983782793652793
13-1
14-203
15-57
16-18586
17-31378682943772818461924738352952347258
18-823945628745673589495067238723986520375698237620834674509627345273096287563846592384526349872634895763257893467523987578690283762897568459072348758071071087813501875908127359018715023841710239872301387278
19.123521346523546
200.1245923756273856
21-.1024678456387
22-0.8735863475634587
234.0
24-6.0
25234237468293576.000000000000000000000000000000
2623987623568943567.00000000000000000005677834650000000000000
2723856934568940675.000000000000000435676782300000000000000456784
2877567648698496.000000000000000000587674750000000000458563800000000000000
292348672354968723.2374823546000000000003256987394502346892435623870000000034578
30-2354768.000000000000000000000000000000000000
31-96739874567.000000000347683456
32-3764568345.000000000004573845000000347683460
33-356784356.934568495770004586495678300000000
3474325437345273852773827101738273127312738521733017537073520735207307570358738257390761276072160719802671980267018728630178.7082681027680521760217867841276127681270867827821768173178207830710978017738178678012767377058785378278207385237085237803278203782037237582795870
35-756752732785273851273728537852738257837283678965738527385272983678372867327835672967385278372637862738627836279863782673862783670.71738178361738718367186378610738617836781603760178367018603760178107735278372832783728367826738627836278378260736270367362073867097307925
369812734012837410982345719208345712908357412903587192048571920458712.23957182459817249058172945781
diff --git a/testsuite/bc_decimal_results.txt b/testsuite/bc_decimal_results.txt
new file mode 100644
index 000000000..275d431c6
--- /dev/null
+++ b/testsuite/bc_decimal_results.txt
@@ -0,0 +1,51 @@
10
20
30
40
5135482346782356
62
71
811
9123
107505
111023468723275435238491972521917846
1243434724324317058673920735170382703980273527090273892739207390379379\
1360379637893607893607893670530278200795207952702873892786172916728961\
1478390789360741897358785738607967926792673752073092537298378279365279\
153
16-1
17-203
18-57
19-18586
20-31378682943772818461924738352952347258
21-8239456287456735894950672387239865203756982376208346745096273452730\
2296287563846592384526349872634895763257893467523987578690283762897568\
2345907234875807107108781350187590812735901871502384171023987230138727\
248
25.123521346523546
26.1245923756273856
27-.1024678456387
28-.8735863475634587
294.0
30-6.0
31234237468293576.000000000000000000000000000000
3223987623568943567.00000000000000000005677834650000000000000
3323856934568940675.000000000000000435676782300000000000000456784
3477567648698496.00000000000000000058767475000000000045856380000000000\
350000
362348672354968723.237482354600000000000325698739450234689243562387000\
370000034578
38-2354768.000000000000000000000000000000000000
39-96739874567.000000000347683456
40-3764568345.000000000004573845000000347683460
41-356784356.934568495770004586495678300000000
4274325437345273852773827101738273127312738521733017537073520735207307\
43570358738257390761276072160719802671980267018728630178.7082681027680\
4452176021786784127612768127086782782176817317820783071097801773817867\
458012767377058785378278207385237085237803278203782037237582795870
46-7567527327852738512737285378527382578372836789657385273852729836783\
4772867327835672967385278372637862738627836279863782673862783670.71738\
4817836173871836718637861073861783678160376017836701860376017810773527\
498372832783728367826738627836278378260736270367362073867097307925
509812734012837410982345719208345712908357412903587192048571920458712.\
5123957182459817249058172945781
diff --git a/testsuite/bc_divide.bc b/testsuite/bc_divide.bc
new file mode 100644
index 000000000..4d0caddc9
--- /dev/null
+++ b/testsuite/bc_divide.bc
@@ -0,0 +1,31 @@
10 / 1
20 / 321566
30 / 0.3984567238456
41 / 1
51 / 1287469297356
61 / 0.2395672438567234
71 / 237586239856.0293596728392360
81249687284356 / 3027949207835207
9378617298617396719 / 35748521
109348576237845624358 / 0.9857829375461
1135768293846193284 / 2374568947.045762839567823
12-78987234567812345 / 876542837618936
13-356789237555535468 / 0.3375273860984786903
14-5203475364850390 / 435742903748307.70869378534043296404530458
15-0.37861723347576903 / 7385770896
16-0.399454682043962 / 0.34824389304
17-0.6920414523873204 / 356489645223.76076045304879030
18-35872917389671.7573280963748 / 73924708
19-78375896314.4836709876983 / 0.78356798637817
20-2374123896417.143789621437581 / 347821469423789.1473856783960
21-896729350238549726 / -34976289345762
22-2374568293458762348596 / -0.8792370647234987679
23-237584692306721845726038 / -21783910782374529637.978102738746189024761
24-0.23457980123576298375682 / -1375486293874612
25-0.173897061862478951264 / -0.8179327486017634987516298745
26-0.9186739823576829347586 / -0.235678293458756239846
27-0.9375896183746982374568 / -13784962873546.0928729395476283745
28-2930754618923467.12323745862937465 / -734869238465
29-23745861923467.874675129834675 / -0.23542357869124756
30-3878923750692883.7238596702834756902 / -7384192674957215364986723.9738461923487621983
311 / 0.00000000000000000000000000000000000000000002346728372937352457354204563027
diff --git a/testsuite/bc_divide_results.txt b/testsuite/bc_divide_results.txt
new file mode 100644
index 000000000..c19f2f9b0
--- /dev/null
+++ b/testsuite/bc_divide_results.txt
@@ -0,0 +1,31 @@
10
20
30
41.00000000000000000000
5.00000000000077671755
64.17419336592637110778
7.00000000000420899796
8.00041271738677857404
910591131829.40901859967857131767
109483402361494453751.52388015648196297248
1115063068.13735316451497043884
12-90.11223545260531110575
13-1057067521778623447.45138528213564485251
14-11.94161814246320631346
15-.00000000005126306228
16-1.14705437777218917343
17-.00000000000194126663
18-485262.88923145638029569727
19-100024372711.74763635544535424582
20-.00682569681609989277
2125638.20711150436682153521
222700714504347599627864.24626421085374010264
2310906.42973524078145692731
24.00000000000000017054
25.21260557443109085166
263.89799997647407910677
27.00000000000006801538
283988.13076601933678578945
29100864416620775.31076855630746548983
30.00000000052530099381
3142612515855353136519261264261472677699404182.78776061098893912189
diff --git a/testsuite/bc_exponent.bc b/testsuite/bc_exponent.bc
new file mode 100644
index 000000000..40bcf3c5a
--- /dev/null
+++ b/testsuite/bc_exponent.bc
@@ -0,0 +1,22 @@
1e(0)
2e(0.5)
3e(1)
4e(1.5)
5e(1.74)
6e(2)
7e(3.2345)
8e(5.283957)
9e(13.23857)
10e(100)
11e(283.238957)
12e(-0.5)
13e(-1)
14e(-1.5)
15e(-1.74)
16e(-2)
17e(-3.2345)
18e(-5.283957)
19e(-13.23857)
20e(-100)
21e(-283.238957)
22e(142.749502399)
diff --git a/testsuite/bc_exponent_results.txt b/testsuite/bc_exponent_results.txt
new file mode 100644
index 000000000..a1f1fe2b4
--- /dev/null
+++ b/testsuite/bc_exponent_results.txt
@@ -0,0 +1,25 @@
11.00000000000000000000
21.64872127070012814684
32.71828182845904523536
44.48168907033806482260
55.69734342267199101193
67.38905609893065022723
725.39367176822616278859
8197.14845034328553587817
9561613.96621445383501864766
1026881171418161354484126255515800135873611118.77374192241519160861
1110212124131159922810249757193864245307850725332411569566443792548720\
1275182918653384240389953781407569563117008113027037939783.70141667971\
13570827872
14.60653065971263342360
15.36787944117144232159
16.22313016014842982893
17.17552040061699687169
18.13533528323661269189
19.03937988996342191888
20.00507231985977442865
21.00000178058250000525
220
230
2498928445824097165243611240348236907682258759298273030827411201.25833\
25645622510213538
diff --git a/testsuite/bc_large.tar.xz b/testsuite/bc_large.tar.xz
new file mode 100644
index 000000000..b2e358a79
--- /dev/null
+++ b/testsuite/bc_large.tar.xz
Binary files differ
diff --git a/testsuite/bc_log.bc b/testsuite/bc_log.bc
new file mode 100644
index 000000000..54115e380
--- /dev/null
+++ b/testsuite/bc_log.bc
@@ -0,0 +1,22 @@
1l(0)
2l(0.5)
3l(1)
4l(1.5)
5l(1.74)
6l(2)
7l(3.2345)
8l(5.283957)
9l(13.23857)
10l(100)
11l(283.238957)
12l(-0.5)
13l(-1)
14l(-1.5)
15l(-1.74)
16l(-2)
17l(-3.2345)
18l(-5.283957)
19l(-13.23857)
20l(-100)
21l(-283.238957)
22l(10430710.3325472917)
diff --git a/testsuite/bc_log_results.txt b/testsuite/bc_log_results.txt
new file mode 100644
index 000000000..ce840a0d9
--- /dev/null
+++ b/testsuite/bc_log_results.txt
@@ -0,0 +1,22 @@
1-99999999999999999999.00000000000000000000
2-.69314718055994530941
30
4.40546510810816438197
5.55388511322643765995
6.69314718055994530941
71.17387435650190306676
81.66467524885255369652
92.58313453863349348434
104.60517018598809136803
115.64629091238730017971
12-99999999999999999999.00000000000000000000
13-99999999999999999999.00000000000000000000
14-99999999999999999999.00000000000000000000
15-99999999999999999999.00000000000000000000
16-99999999999999999999.00000000000000000000
17-99999999999999999999.00000000000000000000
18-99999999999999999999.00000000000000000000
19-99999999999999999999.00000000000000000000
20-99999999999999999999.00000000000000000000
21-99999999999999999999.00000000000000000000
2216.16026492940839137014
diff --git a/testsuite/bc_misc.bc b/testsuite/bc_misc.bc
new file mode 100644
index 000000000..571f4a87e
--- /dev/null
+++ b/testsuite/bc_misc.bc
@@ -0,0 +1,13 @@
14.1*1.-13^ - 74 - 1284597623841*1.-13^ - 757
24.1*1.\
3-1\
43^ - 74 - 1284597623841*1.\
5-1\
63^ - 757
7obase = 9
84.1*1.-13^ - 74 - 1284597623841*1.-13^ - 757
94.1*1.\
10-1\
113^ - 74 - 1284597623841*1.\
12-1\
133^ - 757
diff --git a/testsuite/bc_misc1.bc b/testsuite/bc_misc1.bc
new file mode 100644
index 000000000..7e9d96604
--- /dev/null
+++ b/testsuite/bc_misc1.bc
@@ -0,0 +1,76 @@
1define x(x) {
2 return(x)
3}
4define y() {
5 return;
6}
7define z() {
8 return ();
9}
10scale = 0
11x=2
12x[0]=3
13x
14x[0]
15scale
16ibase
17obase
18x ( 7 )
19x + x( 8 )
20x - x[0]
21321 * x
222 ^ x[0]
23x++
24--x
25x += 9
26x
27length(2381)
28sqrt(9)
29scale(238.1)
30x=2
31x[0]=3
32(x)
33(x[0])
34(scale)
35(ibase)
36(obase)
37(x ( 7 ))
38(x + x( 8 ))
39(x - x[0])
40(321 * x)
41(2 ^ x[0])
42(x++)
43(--x)
44(x += 9)
45(length(2381))
46(sqrt(9))
47(scale(238.1))
48(scale = 0)
49(x = 10)
50(x += 100)
51(x -= 10)
52(x *= 10)
53(x /= 100)
54(x ^= 10)
55(x = sqrt(x))
56(x[1 - 1])
57x[(1 - 1)]
582 + \
593
60++ibase
61--ibase
62++obase
63--obase
64++last
65--last
66last
67last = 100
68last
69. = 150
70.
71++scale
72--scale
73y()
74z()
752 + /*
76*/3
diff --git a/testsuite/bc_misc1_results.txt b/testsuite/bc_misc1_results.txt
new file mode 100644
index 000000000..a9c278069
--- /dev/null
+++ b/testsuite/bc_misc1_results.txt
@@ -0,0 +1,57 @@
12
23
30
410
510
67
710
8-1
9642
108
112
122
1311
144
153
161
172
183
190
2010
2110
227
2310
24-1
25642
268
272
282
2911
304
313
321
330
3410
35110
36100
371000
3810
3910000000000
40100000
413
423
435
4411
4510
4610
4710
4811
4910
5010
51100
52150
531
540
550
560
575
diff --git a/testsuite/bc_misc2.bc b/testsuite/bc_misc2.bc
new file mode 100644
index 000000000..f5a6a6b13
--- /dev/null
+++ b/testsuite/bc_misc2.bc
@@ -0,0 +1,45 @@
1define x() {
2"x"
3return ( 1 )
4}
5define y() {
6"y"
7return (2)
8}
9define z() {
10"z"
11return (3)
12}
13
14if ( x() == y() ) {1}
151
16if ( x() <= y() ) {2}
17if ( y() >= x() ) {3}
18if ( x() != y() ) {4}
19if ( x() < y() ) {5}
20if ( y() > x() ) {6}
21
22if ( x() == z() ) {11}
2311
24if ( x() <= z() ) {12}
25if ( z() >= x() ) {13}
26if ( x() != z() ) {14}
27if ( x() < z() ) {15}
28if ( z() > x() ) {16}
29
30x = -10
31while (x <= 0) {
32 x
33 if (x == -5) break;
34 x += 1
35}
36
37define u() {
38 auto a[];
39 return a[0]
40}
41
42u()
43
44if (x == -4) x
45else x - 4
diff --git a/testsuite/bc_misc2_results.txt b/testsuite/bc_misc2_results.txt
new file mode 100644
index 000000000..022ca8728
--- /dev/null
+++ b/testsuite/bc_misc2_results.txt
@@ -0,0 +1,20 @@
1xy1
2xy2
3yx3
4xy4
5xy5
6yx6
7xz11
8xz12
9zx13
10xz14
11xz15
12zx16
13-10
14-9
15-8
16-7
17-6
18-5
190
20-9
diff --git a/testsuite/bc_misc_results.txt b/testsuite/bc_misc_results.txt
new file mode 100644
index 000000000..e2db76e0e
--- /dev/null
+++ b/testsuite/bc_misc_results.txt
@@ -0,0 +1,4 @@
1-1284597623836.9
2-1284597623836.9
3-4483684050181.80
4-4483684050181.80
diff --git a/testsuite/bc_modulus.bc b/testsuite/bc_modulus.bc
new file mode 100644
index 000000000..e2656a6e9
--- /dev/null
+++ b/testsuite/bc_modulus.bc
@@ -0,0 +1,70 @@
11 % 1
22 % 1
316 % 4
415 % 4
517 % 4
62389473 % 5
739240687239 % 1
8346728934 % 23958
93496723859067234 % 298375462837546928347623059375486
10-1 % 1
11-2 % 1
12-47589634875689345 % 37869235
13-1274852934765 % 2387628935486273546
14-6324758963 % 237854962
151 % -1
162 % -1
172 % -2
182 % -3
1916 % 5
2015 % 5
2114 % 5
2289237423 % -237856923854
23123647238946 % -12467
24-1 % -1
25-2 % -1
26-2 % -2
27-2 % -3
28-13 % -7
29-14 % -7
30-15 % -7
31-12784956 % -32746
32-127849612 % -23712347682193
331 % 0.2395672438567234
34scale = 0
351 % 1
362 % 1
3716 % 4
3815 % 4
3917 % 4
402389473 % 5
4139240687239 % 1
42346728934 % 23958
433496723859067234 % 298375462837546928347623059375486
44-1 % 1
45-2 % 1
46-47589634875689345 % 37869235
47-1274852934765 % 2387628935486273546
48-6324758963 % 237854962
491 % -1
502 % -1
512 % -2
522 % -3
5316 % 5
5415 % 5
5514 % 5
5689237423 % -237856923854
57123647238946 % -12467
58-1 % -1
59-2 % -1
60-2 % -2
61-2 % -3
62-13 % -7
63-14 % -7
64-15 % -7
65-12784956 % -32746
66-127849612 % -23712347682193
67-3191280681 % 641165986
68scale = 0; -899510228 % -2448300078.40314
69scale = 0; -7424863 % -207.2609738667
70scale = 0; 3769798918 % 0.6
diff --git a/testsuite/bc_modulus_results.txt b/testsuite/bc_modulus_results.txt
new file mode 100644
index 000000000..e85145be7
--- /dev/null
+++ b/testsuite/bc_modulus_results.txt
@@ -0,0 +1,69 @@
10
20
30
40
50
60
70
8.00000000000000002026
92747189239559.46904933397471305894
100
110
12-.00000000000011057855
13-.00076922992566770712
14-.00000000000050364144
150
160
170
18.00000000000000000002
190
200
210
22.00000000070585524350
23.00000000000000002898
240
250
260
27-.00000000000000000002
28-.00000000000000000005
290
30-.00000000000000000002
31-.00000000000000011722
32-.00000002640923745817
33.000000000000000000000404744340951948
340
350
360
373
381
393
400
418758
423496723859067234
430
440
45-8236960
46-1274852934765
47-140529951
480
490
500
512
521
530
544
5589237423
566692
570
580
590
60-2
61-6
620
63-1
64-14016
65-127849612
66-626616737
67-899510228.00000
68-153.1331732059
69.4
diff --git a/testsuite/bc_multiply.bc b/testsuite/bc_multiply.bc
new file mode 100644
index 000000000..8d5aa36d5
--- /dev/null
+++ b/testsuite/bc_multiply.bc
@@ -0,0 +1,42 @@
10 * 0
20.000 * 0
31 * 0
40 * 1
50 * 2498752389672835476
6873246913745129084576134 * 0
71 * 472638590273489273456
812374861230476103672835496 * 1
91 * 1
102 * 1
111 * 2
122 * 2
133 * 14
1417 * 8
151892467513846753 * 1872439821374591038746
16328962735862.2973546835638947635 * 1728465791348762356
1738745962374538.387427384672934867234 * 0.1932476528394672837568923754
189878894576289457634856.2738627161689017387608947567654 * 37842939768237596237854203.29874372139852739126739621793162
19-1 * 1
20-1 * 2
2178893457 * -34876238956
22235678324957634 * -0.2349578349672389576
23-12849567821934 * 12738462937681
241274861293467.927843682937462 * -28935678239
252936077239872.12937462836 * -0.012842357682435762
262387692387566.2378569237546 * -272189345628.123875629835876
270.012348629356782835962 * -23487692356
280.4768349567348675934 * -0.23756834576934857638495
290.98748395367485962735486 * -4675839462354867.376834956738456
30-321784627934586 * -235762378596
31-32578623567892356 * -0.32567384579638456
32-35768232346876 * -2348672935602387620.28375682349576237856
33-0.2356728394765234 * -238759624356978
34-0.2345768212346780 * -0.235768124697074385948943532045
35-0.370873860736785306278630 * -7835678398607.7086378076867096270
36-78365713707.7089637863786730 * -738580798679306780
37-73867038956790490258249 * -0.7379862716391723672803679
38-378621971598721837710387 * -98465373878350798.09743896037963078560
3937164201 * 2931559660
40679468076118972457796560530571.46287161642138401685 * 93762.2836
41.000000000000000000000000001 * .0000000000000000000000001
42scale = 0; 237854962 * -26
diff --git a/testsuite/bc_multiply_results.txt b/testsuite/bc_multiply_results.txt
new file mode 100644
index 000000000..1dee19c37
--- /dev/null
+++ b/testsuite/bc_multiply_results.txt
@@ -0,0 +1,43 @@
10
20
30
40
50
60
7472638590273489273456
812374861230476103672835496
91
102
112
124
1342
14136
153543531533584430580556128344529291738
16568600835566479683035874339053.4411638427543228060
177487566285885.8557453089005171423976251098
18373846412427291014394738378015501363938345620046.7869650248829232267\
192297002026819
20-1
21-2
22-2751507058396910892
23-55374468980751.0837656919743223184
24-163683743464924630346895054
25-36888976187143312550878.567134791289418
26-37706154097.69662826215753378160
27-649904428532907022680241.94791869424754101064
28-290040807.350385412976669306472
29-.11328089187650139309272
30-4617316439035114.40320367843985107357898
3175864709277486862054521256
3210610005628108234.92015040406042336
3384007879267445533366251128067927.91168012197674537856
3456269158624557.1027018519702852
35.055305737239900889424090264801
362906048299183.472237078104362540110129
3757879411419313585866282299201.3825582163029400
3854512860676747314187949.9414724679950990587298071
3937281153992026463004361915151761464058058.54968338992209002720
40108949072447731660
4163708478450213482928510139572007971.83536929222529239687
420
43-6184229012
diff --git a/testsuite/bc_pi.bc b/testsuite/bc_pi.bc
new file mode 100644
index 000000000..b98419f12
--- /dev/null
+++ b/testsuite/bc_pi.bc
@@ -0,0 +1,4 @@
1for (i = 0; i <= 100; ++i) {
2 scale = i
3 4 * a(1)
4}
diff --git a/testsuite/bc_pi_results.txt b/testsuite/bc_pi_results.txt
new file mode 100644
index 000000000..128d6c0ca
--- /dev/null
+++ b/testsuite/bc_pi_results.txt
@@ -0,0 +1,135 @@
10
22.8
33.12
43.140
53.1412
63.14156
73.141592
83.1415924
93.14159264
103.141592652
113.1415926532
123.14159265356
133.141592653588
143.1415926535896
153.14159265358976
163.141592653589792
173.1415926535897932
183.14159265358979320
193.141592653589793236
203.1415926535897932384
213.14159265358979323844
223.141592653589793238460
233.1415926535897932384624
243.14159265358979323846264
253.141592653589793238462640
263.1415926535897932384626432
273.14159265358979323846264336
283.141592653589793238462643380
293.1415926535897932384626433832
303.14159265358979323846264338324
313.141592653589793238462643383276
323.1415926535897932384626433832792
333.14159265358979323846264338327948
343.141592653589793238462643383279500
353.1415926535897932384626433832795028
363.14159265358979323846264338327950288
373.141592653589793238462643383279502884
383.1415926535897932384626433832795028840
393.14159265358979323846264338327950288416
403.141592653589793238462643383279502884196
413.1415926535897932384626433832795028841968
423.14159265358979323846264338327950288419716
433.141592653589793238462643383279502884197168
443.1415926535897932384626433832795028841971692
453.14159265358979323846264338327950288419716936
463.141592653589793238462643383279502884197169396
473.1415926535897932384626433832795028841971693992
483.14159265358979323846264338327950288419716939936
493.141592653589793238462643383279502884197169399372
503.1415926535897932384626433832795028841971693993748
513.14159265358979323846264338327950288419716939937508
523.141592653589793238462643383279502884197169399375104
533.1415926535897932384626433832795028841971693993751056
543.14159265358979323846264338327950288419716939937510580
553.141592653589793238462643383279502884197169399375105820
563.1415926535897932384626433832795028841971693993751058208
573.14159265358979323846264338327950288419716939937510582096
583.141592653589793238462643383279502884197169399375105820972
593.1415926535897932384626433832795028841971693993751058209748
603.14159265358979323846264338327950288419716939937510582097492
613.141592653589793238462643383279502884197169399375105820974944
623.1415926535897932384626433832795028841971693993751058209749444
633.14159265358979323846264338327950288419716939937510582097494456
643.141592653589793238462643383279502884197169399375105820974944592
653.1415926535897932384626433832795028841971693993751058209749445920
663.14159265358979323846264338327950288419716939937510582097494459228
673.141592653589793238462643383279502884197169399375105820974944592304
683.141592653589793238462643383279502884197169399375105820974944592307\
696
703.141592653589793238462643383279502884197169399375105820974944592307\
7180
723.141592653589793238462643383279502884197169399375105820974944592307\
73816
743.141592653589793238462643383279502884197169399375105820974944592307\
758164
763.141592653589793238462643383279502884197169399375105820974944592307\
7781640
783.141592653589793238462643383279502884197169399375105820974944592307\
79816404
803.141592653589793238462643383279502884197169399375105820974944592307\
818164060
823.141592653589793238462643383279502884197169399375105820974944592307\
8381640628
843.141592653589793238462643383279502884197169399375105820974944592307\
85816406284
863.141592653589793238462643383279502884197169399375105820974944592307\
878164062860
883.141592653589793238462643383279502884197169399375105820974944592307\
8981640628620
903.141592653589793238462643383279502884197169399375105820974944592307\
91816406286208
923.141592653589793238462643383279502884197169399375105820974944592307\
938164062862088
943.141592653589793238462643383279502884197169399375105820974944592307\
9581640628620896
963.141592653589793238462643383279502884197169399375105820974944592307\
97816406286208996
983.141592653589793238462643383279502884197169399375105820974944592307\
998164062862089984
1003.141592653589793238462643383279502884197169399375105820974944592307\
10181640628620899860
1023.141592653589793238462643383279502884197169399375105820974944592307\
103816406286208998628
1043.141592653589793238462643383279502884197169399375105820974944592307\
1058164062862089986280
1063.141592653589793238462643383279502884197169399375105820974944592307\
10781640628620899862800
1083.141592653589793238462643383279502884197169399375105820974944592307\
109816406286208998628032
1103.141592653589793238462643383279502884197169399375105820974944592307\
1118164062862089986280348
1123.141592653589793238462643383279502884197169399375105820974944592307\
11381640628620899862803480
1143.141592653589793238462643383279502884197169399375105820974944592307\
115816406286208998628034824
1163.141592653589793238462643383279502884197169399375105820974944592307\
1178164062862089986280348252
1183.141592653589793238462643383279502884197169399375105820974944592307\
11981640628620899862803482532
1203.141592653589793238462643383279502884197169399375105820974944592307\
121816406286208998628034825340
1223.141592653589793238462643383279502884197169399375105820974944592307\
1238164062862089986280348253420
1243.141592653589793238462643383279502884197169399375105820974944592307\
12581640628620899862803482534208
1263.141592653589793238462643383279502884197169399375105820974944592307\
127816406286208998628034825342116
1283.141592653589793238462643383279502884197169399375105820974944592307\
1298164062862089986280348253421168
1303.141592653589793238462643383279502884197169399375105820974944592307\
13181640628620899862803482534211704
1323.141592653589793238462643383279502884197169399375105820974944592307\
133816406286208998628034825342117064
1343.141592653589793238462643383279502884197169399375105820974944592307\
1358164062862089986280348253421170676
diff --git a/testsuite/bc_power.bc b/testsuite/bc_power.bc
new file mode 100644
index 000000000..5657cdd7b
--- /dev/null
+++ b/testsuite/bc_power.bc
@@ -0,0 +1,44 @@
10 ^ 0
20 ^ 1
30 ^ 1894
41 ^ 0
539746823 ^ 0
60.238672983047682 ^ 0
718394762374689237468.97354862973846 ^ 0
81 ^ 1
92 ^ 1
1018927361346 ^ 1
110.23523785962738592635777 ^ 1
12328956734869213746.89782398457234 ^ 1
138937 ^ 98
140.124876812394 ^ 2396
1593762.2836 ^ 13
161 ^ -1
172 ^ -1
1810 ^ -1
19683734768 ^ -1
2038579623756.897937568235 ^ -1
211 ^ -32467
222 ^ -53
2323897 ^ -213
24-1 ^ 1
25-1 ^ 2
26-2 ^ 1
27-2 ^ 2
28-237 ^ 294
29-3746 ^ 28
30-0.3548 ^ 35
31-4267.234 ^ 37
32-326.3246 ^ 78
33-1 ^ -1
34-1 ^ -2
35-2 ^ -1
36-2 ^ -2
37-237 ^ -293
38-784 ^ -23
39-86 ^ -7
40-0.23424398 ^ -781
41-178.234786 ^ -879
42-1274.346 ^ -768
430 ^ -251
44-0.2959371298 ^ 227
diff --git a/testsuite/bc_power_results.txt b/testsuite/bc_power_results.txt
new file mode 100644
index 000000000..997f44f59
--- /dev/null
+++ b/testsuite/bc_power_results.txt
@@ -0,0 +1,73 @@
11
20
30
41
51
61
71
81
92
1018927361346
11.23523785962738592635777
12328956734869213746.89782398457234
1316473742664221279051571200630760751138799221376964991600670000200609\
1408006052596520320731708604393844468006290371918262741885989163144389\
1539367835091560809036359941703341471396407660150658436796925310445979\
1621333166245765946557344383284626113908419359990042883048537750217279\
1717481980123593363177308481941550382845381799410533956718500484099889\
18610805653325917409549921909941664118421333562129
190
2043287877285033571298394739716218787350087163435619825150259705419.98\
21016445740928054425
221.00000000000000000000
23.50000000000000000000
24.10000000000000000000
25.00000000146255543348
26.00000000002592041867
271.00000000000000000000
28.00000000000000011102
290
30-1
311
32-2
334
3414997322375665265051328725757939209353051902095893907150382724666290\
3549749481660976421019742616298227588464420182758442163654172400528243\
3600885441207762486233574213374503090372518590691583139696652847404883\
3708573912261119588874308960204159666762789603037188471170006223907416\
3860492840269152716750700089148882139254399347568222390231015487895905\
3973727080561379177721440905866857248917982113340543176658480139248897\
4054802503253413282808814063861470711399810899724515727713334909764746\
4127910290211411231279325882505708287941671508154740003122373284699097\
4278346501539634198926772266511968381368929692275950529960923432771985\
4312597189390708050983487158873301681237787429436264801751664042999180\
443448659818912436089
4511478830555358864333472551120140548480416206583184496764727387456058\
46792742209537931243951391229607936
47-.00000000000000017759
48-2067373624686414405470850679965010694114490999957199847684803894306\
4956243666149296582304582679590231948238805965642713928910384741502707\
50.23224479257866798694
5111606078892843496082360561256965139908586179418605021706789617179085\
5285768049299693425729565480314913006780973928345684673490252494674985\
530186164225375953066263609289359900615361965737717208159874390.293769\
5470206344604971
55-1.00000000000000000000
561.00000000000000000000
57-.50000000000000000000
58.25000000000000000000
590
600
61-.00000000000002874159
62-1945134149489344891879057554905782841936258356736314337975569799825\
6394091939572752348215929683891336730843553721422164737465108229034947\
6487333189564755763444242676978610321731298729194092653999616928308494\
6526419468484566422775668903315088810746121307679948574976162519479931\
6618935243698160094347216562490000767121041786977792546155155934655909\
6714123833869470494708767968978717730012864171105540029928688274136791\
6898175053824022144065005509214813689232148489884560100200475909009813\
69340098100705258138.98542904577525702068
700
710
720
730
diff --git a/testsuite/bc_sine.bc b/testsuite/bc_sine.bc
new file mode 100644
index 000000000..d3a547bcd
--- /dev/null
+++ b/testsuite/bc_sine.bc
@@ -0,0 +1,207 @@
1scale = 25
2p = 4 * a(1)
3scale = 20
4s(0)
5s(0.5)
6s(1)
7s(2)
8s(3)
9s(-0.5)
10s(-1)
11s(-2)
12s(-3)
13s(p / 7)
14s(-p / 7)
15s(p / 4)
16s(-p / 4)
17s(p / 3)
18s(-p / 3)
19s(p / 2)
20s(-p / 2)
21s(3 * p / 4)
22s(3 * -p / 4)
23s(p)
24s(-p)
25s(3 * p / 2)
26s(3 * -p / 2)
27s(7 * p / 4)
28s(7 * -p / 4)
29s(13 * p / 4)
30s(13 * -p / 4)
31s(2 * p)
32s(2 * -p)
33s(131231)
34s(-131231)
35s(69.1967507777)
36s(10828)
37s(-16248506.847013148)
38s(2050281000)
39s(8224939)
40s(11334231.1154662464)
41s(-4109411249.2986954846)
42s(-2395915402.13984)
43s(-2795874313)
44s(-2262647256)
45s(3323158182.1239222084)
46s(99901384)
47s(-4202726050.2780080957)
48s(2870000621.3228830588)
49s(-4230239450.981045150)
50s(-1517506941.2678857223)
51s(4004582176)
52s(-4193724543.1108508063)
53s(-3432511261)
54s(1804484812)
55s(3229084127)
56s(-3565317246.583937244)
57s(3503281621)
58s(-3469146313.1766891244)
59s(-2257308049.307721068)
60s(-3978441809)
61s(3431564304.3752537)
62s(1249644440.2464914559)
63s(2395558891.1188487974)
64s(-2607820706.4079280116)
65s(1208310007)
66s(-3758597557.863203175)
67s(1186920672)
68s(-3988103872)
69s(-4280635328.4194857577)
70s(1051748072)
71s(-1884006279)
72s(-1046568719.2698663389)
73s(2482991410)
74s(-2106101268.1154045959)
75s(3530359346.77217900)
76s(-3373362543)
77s(2601598062)
78s(2987020862)
79s(-12033356.2057140648)
80s(-3721760707)
81s(2842387705.4145759704)
82s(3515832681.1808393297)
83s(-3658522034.16149)
84s(3963658030.2860423992)
85s(2977802215.597946655)
86s(-4271392570.4091498761)
87s(2378692585)
88s(-3545193743.629374782)
89s(-1762458738)
90s(-1174277828.4264040126)
91s(-1724994857)
92s(2802750230.1783499408)
93s(-3068133550)
94s(3324811474.621822235)
95s(2873024984)
96s(-3509056632.3888206298)
97s(1772903162.647192879)
98s(2836543102)
99s(4117858580.186)
100s(2988632386.4063754522)
101s(-4256784971.1770067447)
102s(2280820447)
103s(-2865200306)
104s(-3329592486)
105s(519126268)
106s(-2452430452)
107s(-2693220186.62104082)
108s(-3796811992.14485798)
109s(3619792326)
110s(2697791049.3038381550)
111s(3751267834.2808166557)
112s(-3761719074)
113s(-3824087631)
114s(2119301150)
115s(1398148974)
116s(-3386564819.1351816969)
117s(-3171483098)
118s(3688944941.3273318162)
119s(3060521119)
120s(-3527110404)
121s(3699631193)
122s(3872838898)
123s(3880350192)
124s(-4109411249.2986954846)
125s(-2395915402.13984)
126s(-2795874313)
127s(-2262647256)
128s(3323158182.1239222084)
129s(99901384)
130s(-4202726050.2780080957)
131s(2870000621.3228830588)
132s(-4230239450.981045150)
133s(-1517506941.2678857223)
134s(4004582176)
135s(-4193724543.1108508063)
136s(-3432511261)
137s(1804484812)
138s(3229084127)
139s(-3565317246.583937244)
140s(3503281621)
141s(-3469146313.1766891244)
142s(-2257308049.307721068)
143s(-3978441809)
144s(3431564304.3752537)
145s(1249644440.2464914559)
146s(2395558891.1188487974)
147s(-2607820706.4079280116)
148s(1208310007)
149s(-3758597557.863203175)
150s(1186920672)
151s(-3988103872)
152s(-4280635328.4194857577)
153s(1051748072)
154s(-1884006279)
155s(-1046568719.2698663389)
156s(2482991410)
157s(-2106101268.1154045959)
158s(3530359346.77217900)
159s(-3373362543)
160s(2601598062)
161s(2576349783.2446436039)
162s(2987020862)
163s(-12033356.2057140648)
164s(-3721760707)
165s(2842387705.4145759704)
166s(3515832681.1808393297)
167s(-3658522034.16149)
168s(3963658030.2860423992)
169s(2977802215.597946655)
170s(-4271392570.4091498761)
171s(2378692585)
172s(-3545193743.629374782)
173s(-1762458738)
174s(-1174277828.4264040126)
175s(-1724994857)
176s(2802750230.1783499408)
177s(-3068133550)
178s(3324811474.621822235)
179s(2873024984)
180s(-3509056632.3888206298)
181s(1772903162.647192879)
182s(2836543102)
183s(4117858580.186)
184s(2988632386.4063754522)
185s(-4256784971.1770067447)
186s(2280820447)
187s(-2865200306)
188s(-3329592486)
189s(519126268)
190s(-2452430452)
191s(-2693220186.62104082)
192s(-3796811992.14485798)
193s(3619792326)
194s(2697791049.3038381550)
195s(3751267834.2808166557)
196s(-3761719074)
197s(-3824087631)
198s(2119301150)
199s(1398148974)
200s(-3386564819.1351816969)
201s(-3171483098)
202s(3688944941.3273318162)
203s(3060521119)
204s(-3527110404)
205s(3699631193)
206s(3872838898)
207s(3880350192)
diff --git a/testsuite/bc_sine_results.txt b/testsuite/bc_sine_results.txt
new file mode 100644
index 000000000..7a4a1ab0c
--- /dev/null
+++ b/testsuite/bc_sine_results.txt
@@ -0,0 +1,204 @@
10
2.47942553860420300027
3.84147098480789650665
4.90929742682568169539
5.14112000805986722210
6-.47942553860420300027
7-.84147098480789650665
8-.90929742682568169539
9-.14112000805986722210
10.43388373911755812047
11-.43388373911755812047
12.70710678118654752439
13-.70710678118654752439
14.86602540378443864676
15-.86602540378443864676
161.00000000000000000000
17-1.00000000000000000000
18.70710678118654752440
19-.70710678118654752440
200
210
22-1.00000000000000000000
231.00000000000000000000
24-.70710678118654752440
25.70710678118654752440
26-.70710678118654752439
27.70710678118654752439
280
290
30.38173640790989719211
31-.38173640790989719211
32.08162149793819434415
33.87714140586973771462
34-.91157035998052051623
35-.69638975047120679880
36-.94806056135672896231
37-.54548669379730874215
38.14605234154783145589
39-.12183062787430962391
40-.89832305526331682409
41-.99513029384033555290
42.76528428398894958149
43.51077956237618482050
44-.75908868040685122962
45-.37015497140201575652
46-.51432535569032144654
47.68890201397514289831
48.88200006249578882510
49-.01188893762444044480
50-.55298206739629427055
51-.39165958853437135625
52.17732674488831117445
53-.09648816960119759281
54.15728984163381104344
55-.31554983227150461370
56-.72225704678824601977
57.96170480789326775287
58-.47636475887571231114
59-.98999375714278585763
60-.06715264746977580303
61-.69464867397161089634
62.58037673122614640119
63-.44244898040675115062
64.04242496278231069061
65.96417934585711006987
66-.54513053517818430563
67-.28604677908958958915
68-.68003854521180919710
69.26597321569379963920
70-.34591048991595943570
71-.17084074152217894535
72-.42880744669595980174
73.36518031021580667844
74-.03514839609475800827
75.93891962312087620513
76-.69421849362562852947
77.15169857474887222961
78-.00226070393499995347
79.96209233301706432156
80-.79937182245558378826
81.99966966326862290520
82.85234799672007656117
83-.20824280061137520443
84-.00761257856348159450
85.10708922858398661064
86-.80233147080821341443
87.26521358383069223461
88-.95173930946495828679
89.66210405748455769256
90.30054820568403786217
91.21640593048970779808
92-.87596287572245980692
93.74627849623707962934
94-.25747200288605259984
95-.14700538617135227740
96-.06294254604551440990
97.67948313824962059899
98.83714389089726798409
99.33805040346429707760
100.80273418514828673749
101.72262501870089953244
102-.77469383027517310713
103-.15575896025754423345
104.22191568853026376075
105.25137052589938954082
106-.80534308288073574163
107-.44963537508211028805
108-.92368907556208259630
109-.80963411623457804531
110-.96822928101198069490
111-.46604999828123759716
112.63275578793565409192
113-.40563425346575205109
114.13095444406203282638
115.96217617474547242151
116-.16256793375739137005
117.71791623784197898982
118-.10713685791219679248
119.50758780541979250307
120-.09795373670371402656
121.14605234154783145589
122-.12183062787430962391
123-.89832305526331682409
124-.99513029384033555290
125.76528428398894958149
126.51077956237618482050
127-.75908868040685122962
128-.37015497140201575652
129-.51432535569032144654
130.68890201397514289831
131.88200006249578882510
132-.01188893762444044480
133-.55298206739629427055
134-.39165958853437135625
135.17732674488831117445
136-.09648816960119759281
137.15728984163381104344
138-.31554983227150461370
139-.72225704678824601977
140.96170480789326775287
141-.47636475887571231114
142-.98999375714278585763
143-.06715264746977580303
144-.69464867397161089634
145.58037673122614640119
146-.44244898040675115062
147.04242496278231069061
148.96417934585711006987
149-.54513053517818430563
150-.28604677908958958915
151-.68003854521180919710
152.26597321569379963920
153-.34591048991595943570
154-.17084074152217894535
155-.42880744669595980174
156.36518031021580667844
157-.03514839609475800827
158.75884554410943292265
159.93891962312087620513
160-.69421849362562852947
161.15169857474887222961
162-.00226070393499995347
163.96209233301706432156
164-.79937182245558378826
165.99966966326862290520
166.85234799672007656117
167-.20824280061137520443
168-.00761257856348159450
169.10708922858398661064
170-.80233147080821341443
171.26521358383069223461
172-.95173930946495828679
173.66210405748455769256
174.30054820568403786217
175.21640593048970779808
176-.87596287572245980692
177.74627849623707962934
178-.25747200288605259984
179-.14700538617135227740
180-.06294254604551440990
181.67948313824962059899
182.83714389089726798409
183.33805040346429707760
184.80273418514828673749
185.72262501870089953244
186-.77469383027517310713
187-.15575896025754423345
188.22191568853026376075
189.25137052589938954082
190-.80534308288073574163
191-.44963537508211028805
192-.92368907556208259630
193-.80963411623457804531
194-.96822928101198069490
195-.46604999828123759716
196.63275578793565409192
197-.40563425346575205109
198.13095444406203282638
199.96217617474547242151
200-.16256793375739137005
201.71791623784197898982
202-.10713685791219679248
203.50758780541979250307
204-.09795373670371402656
diff --git a/testsuite/bc_sqrt.bc b/testsuite/bc_sqrt.bc
new file mode 100644
index 000000000..afd87ff0f
--- /dev/null
+++ b/testsuite/bc_sqrt.bc
@@ -0,0 +1,18 @@
1scale = 20
2sqrt(0)
3sqrt(2)
4sqrt(4)
5sqrt(9)
6sqrt(16)
7sqrt(25)
8sqrt(121)
9sqrt(48765)
10sqrt(9287356207356)
11sqrt(0.189274385967238956872354)
12sqrt(12389467137496823.134567829387456283946)
13sqrt(.0000000000000000000000000000123)
14sqrt(1)
15scale = 0;
16sqrt(1407)
17sqrt(79101)
18scale = 6; sqrt(88.1247699921300025847737099094480986051698668662822009535526240)
diff --git a/testsuite/bc_sqrt_results.txt b/testsuite/bc_sqrt_results.txt
new file mode 100644
index 000000000..10a4fa95d
--- /dev/null
+++ b/testsuite/bc_sqrt_results.txt
@@ -0,0 +1,16 @@
10
21.41421356237309504880
32.00000000000000000000
43.00000000000000000000
54.00000000000000000000
65.00000000000000000000
711.00000000000000000000
8220.82798735667542192643
93047516.39985021245496456781
10.435056761776252544285578
11111307983.260397019622398608908
12.0000000000000035071355833500363
131.00000000000000000000
1437
15281
169.3874794269883757005315658512340070115147163425837869223395574
diff --git a/testsuite/bc_strings.bc b/testsuite/bc_strings.bc
new file mode 100644
index 000000000..1cb7d6a61
--- /dev/null
+++ b/testsuite/bc_strings.bc
@@ -0,0 +1,12 @@
1"string"
2"another string"
3"yet
4another
5string"
6"noescapes\n"
7"newline
8"
9print "string"
10print "newline\n"
11
12print "\\\e\n"
diff --git a/testsuite/bc_strings_results.txt b/testsuite/bc_strings_results.txt
new file mode 100644
index 000000000..89b01ac49
--- /dev/null
+++ b/testsuite/bc_strings_results.txt
@@ -0,0 +1,5 @@
1stringanother stringyet
2another
3stringnoescapes\nnewline
4stringnewline
5\\
diff --git a/testsuite/bc_subtract.bc b/testsuite/bc_subtract.bc
new file mode 100644
index 000000000..61ea953ea
--- /dev/null
+++ b/testsuite/bc_subtract.bc
@@ -0,0 +1,32 @@
10 - 0
20 - 1
31 - 0
41 - 1
55 - 2
62 - 9
7321974 - 12845976238457
82874519803456710938465 - 384723854
910000000000000000000000000000000000000000 - 999999999999999999999999999999999999999
1010000000000000000000000000000000000000000 - 9999999999999999999999999999999999999999
1110000000000000000000000000000000000000000 - 999999999999999999999999999999999999999.99999999999999999999999999999999999
1210000000000000000000000000000000000000000 - 9999999999999999999999999999999999999999.9999999999999999999999999999999999
1310000000000000000000000000000000000000000 - 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000001
1410000000000000000000000000000000000000001 - 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000001
1510000000000000000000000000000000000000000.0000000001 - 0.0000000000000000000000000000000000000000000000000000000000000000000000000001
16-2 - 6
17-23784692345 - 182934721309467230894628735496027345
18-224352354962873059862 - -1245723576829456278354960278345
19-3468273598 - -12354243
20-0.92345768293 - -2354768923
21-712384634.123476823 - -24768293376
22-1879234638 - -0.917234869234
23-0.9172438692134 - -0.971284967124
24-0.1283475123465 - -0.937462346
25-124765829346.2837468293562 - -0.923467829346
26-12476829385769 - -1928476259034.8378629356
27-0.38476284395876345 - -94875394587623.2357869324857
28-4674596708467.34754789403674343567 - -48672394852354698.237548629345
29979519669 - 3018100865
30929002449 - 3280677283
310 - -525898
323- - -3
diff --git a/testsuite/bc_subtract_results.txt b/testsuite/bc_subtract_results.txt
new file mode 100644
index 000000000..6850b5bc1
--- /dev/null
+++ b/testsuite/bc_subtract_results.txt
@@ -0,0 +1,36 @@
10
2-1
31
40
53
6-7
7-12845975916483
82874519803456326214611
99000000000000000000000000000000000000001
101
119000000000000000000000000000000000000000.000000000000000000000000000\
1200000001
13.0000000000000000000000000000000001
149999999999999999999999999999999999999999.999999999999999999999999999\
1599999999999999999999999999999999999999999999999999999999999
1610000000000000000000000000000000000000000.99999999999999999999999999\
17999999999999999999999999999999999999999999999999999999999999
1810000000000000000000000000000000000000000.00000000009999999999999999\
1999999999999999999999999999999999999999999999999999
20-8
21-182934721309467230894628759280719690
221245723576605103923392087218483
23-3455919355
242354768922.07654231707
2524055908741.876523177
26-1879234637.082765130766
27.0540410979106
28.8091148336535
29-124765829345.3602790000102
30-10548353126734.1621370644
3194875394587622.85102408852693655
3248667720255646230.89000073530825656433
33-2038581196
34-2351674834
35525898
360
diff --git a/testsuite/bc_vars.bc b/testsuite/bc_vars.bc
new file mode 100644
index 000000000..91e3572c2
--- /dev/null
+++ b/testsuite/bc_vars.bc
@@ -0,0 +1,7 @@
1scale=10;123981239.981273987 * 12983791827398.29836472638
2scale=100;759634576394.3946587934658364895 / 9834759834895386.36459364958346
334895734986539489834759837489573498573.398475984759837485734987598345 + 9823749832749872384234872934.28347982374987239847982374
4a=123123123.987239874; b=123123123.239479823748; a+b
520347023.23498723984 - 28934723874.234720384
6scale=100;a=739534985.895347284957;b=238746782364.2374623784; c = a / b; c
7s7298367203972395108367910823465293084561329084561390845613409516734503870691837451 + 785621394067928346918023476190834672198467134908618723249671349062187346898241093486139046139084613490817356023871869102746182749061872609129847
diff --git a/testsuite/bc_vars_results.txt b/testsuite/bc_vars_results.txt
new file mode 100644
index 000000000..6597d8439
--- /dev/null
+++ b/testsuite/bc_vars_results.txt
@@ -0,0 +1,12 @@
11609746610419572350599.59456175545
2.0000772397688552681359718594121969204138521230712049526233926741658\
3845368495051158801794834809672994
434895734996363239667509709873808371507.68195580850970988421481133834\
55
6246246247.226719697748
7-28914376850.99973314416
8.0030975704827179453786044330548590249517387192084765414205077089498\
9482709063381782183114683451531598
1078562139406792834691802347619083467219846713490861872324967134906218\
1173468982410934861390461390846134908173560238718691027461827490618726\
1209129847
diff --git a/testsuite/dc.tests b/testsuite/dc.tests
index d7a332b9c..8edfa07ca 100755
--- a/testsuite/dc.tests
+++ b/testsuite/dc.tests
@@ -41,4 +41,24 @@ testing "dc complex without spaces (multiple args)" \
41 "16\n" \ 41 "16\n" \
42 "" "" 42 "" ""
43 43
44for f in dc_*.dc; do
45 r="`basename "$f" .dc`_results.txt"
46 test -f "$r" || continue
47 # testing "test name" "command" "expected result" "file input" "stdin"
48 testing "dc $f" \
49 "{ { dc $f 2>&1; echo E:\$? >&2; } | diff -u - $r; echo E:\$?; } 2>&1" \
50 "E:0\nE:0\n" \
51 "" ""
52done
53
54for f in dcx_*.dc; do
55 r="`basename "$f" .dc`_results.txt"
56 test -f "$r" || continue
57 # testing "test name" "command" "expected result" "file input" "stdin"
58 testing "dc -x $f" \
59 "{ { dc -x $f 2>&1; echo E:\$? >&2; } | diff -u - $r; echo E:\$?; } 2>&1" \
60 "E:0\nE:0\n" \
61 "" ""
62done
63
44exit $FAILCOUNT 64exit $FAILCOUNT
diff --git a/testsuite/dc_add.dc b/testsuite/dc_add.dc
new file mode 100644
index 000000000..42da2f1f3
--- /dev/null
+++ b/testsuite/dc_add.dc
@@ -0,0 +1,33 @@
10 0+pR
20 0 0++pR
30 1+pR
40 1 1++pR
51 1+pR
61 0+pR
72 5+pR
8237 483+pR
9999 999+pR
102374623 324869356734856+pR
112378639084586723980562 23468729367839+pR
1237298367203972395108367910823465293084561329084561390845613409516734503870691837451 785621394067928346918023476190834672198467134908618723249671349062187346898241093486139046139084613490817356023871869102746182749061872609129847+pR
131.1 0+pR
140 1.1+pR
15457283.731284923576 37842934672834.3874629385672354+pR
161.0 0.1+pR
173746289134067138046 0.138375863945672398456712389456273486293+pR
18_1 _1+pR
19_4 _15+pR
20_1346782 _1287904651762468913476+pR
2199999999999999999999999999999999999999999999999999999999999.999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001+pR
2299999999999999999999999999999999999999999999999999999999999.999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999995 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005+pR
2399999999999999999999999999999999999999999999999999999999999.999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001+pR
2499999999999999999999999999999999999999999999999999999999999.999999999999999999999999999999999999999999999999999999999899999999999999999999999999999999999999999999999999999999999999 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001+pR
2599999999999999999999999999999999999989999999999999999999999.999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001+pR
26_1889985797 2012747315+pR
270 _14338.391079082+pR
28_2422297 1.3134942556+pR
29_1289374 1289374.2893417 0.238971 28937.28971+++pR
301289374 1289374.2893417 _0.238971 28937.28971+++pR
311289374 1289374.2893417 0.238971 _28937.28971+++pR
321289374 1289374.2893417 _0.238971 _28937.28971+++pR
331289374 _1289374.2893417 _0.238971 _28937.28971+++pR
diff --git a/testsuite/dc_add_results.txt b/testsuite/dc_add_results.txt
new file mode 100644
index 000000000..542a62ea3
--- /dev/null
+++ b/testsuite/dc_add_results.txt
@@ -0,0 +1,45 @@
10
20
31
42
52
61
77
8720
91998
10324869359109479
112378639108055453348401
1278562139406792834691802347619083467219846713490861872324967138636055\
1345508706362018540498696043776980521464405852627147161556994835657433\
1400967298
151.1
161.1
1737842935130118.1187478621432354
181.1
193746289134067138046.138375863945672398456712389456273486293
20-2
21-19
22-1287904651762470260258
23100000000000000000000000000000000000000000000000000000000000.0000000\
2400000000000000000000000000000000000000000000000000000000000000000000\
25000000000000000000000000000000000000000000000
26100000000000000000000000000000000000000000000000000000000000.0000000\
2700000000000000000000000000000000000000000000000000000000000000000000\
28000000000000000000000000000000000000000000000
29100000000000000000000000000000000000000000000000000000000000.0000000\
3000000000000000000000000000000000000000000000000000000000000000000000\
31000000000000000000000000000000000000000009999
3299999999999999999999999999999999999999999999999999999999999.99999999\
3399999999999999999999999999999999999999999999999999000000000000000000\
3400000000000000000000000000000000000000009999
3599999999999999999999999999999999999990000000000000000000000.00000000\
3600000000000000000000000000000000000000000000000000000000000000000000\
3700000000000000000000000000000000000000009999
38122761518
39-14338.391079082
40-2422295.6865057444
4128937.8180227
422607685.3400807
432549811.2386027
442549810.7606607
45-28937.8180227
diff --git a/testsuite/dc_boolean.dc b/testsuite/dc_boolean.dc
new file mode 100644
index 000000000..ea72623b8
--- /dev/null
+++ b/testsuite/dc_boolean.dc
@@ -0,0 +1,27 @@
10 1(pR
21 1(pR
32 1(pR
4_1 1(pR
5_1 0(pR
6_1 _1(pR
7_1 _2(pR
80 1{pR
91 1{pR
102 1{pR
11_1 1{pR
12_1 0{pR
13_1 _1{pR
14_1 _2{pR
150 0GpR
160 1GpR
171 0GpR
18_1 _1GpR
190 _1GpR
20_1 0GpR
211 1GpR
22238 2GpR
230NpR
241NpR
25_1NpR
262398NpR
27_2983.2389NpR
diff --git a/testsuite/dc_boolean_results.txt b/testsuite/dc_boolean_results.txt
new file mode 100644
index 000000000..6d29c5b60
--- /dev/null
+++ b/testsuite/dc_boolean_results.txt
@@ -0,0 +1,27 @@
10
20
31
40
50
60
71
80
91
101
110
120
131
141
151
160
170
181
190
200
211
220
231
240
250
260
270
diff --git a/testsuite/dc_decimal.dc b/testsuite/dc_decimal.dc
new file mode 100644
index 000000000..ebbb2dc91
--- /dev/null
+++ b/testsuite/dc_decimal.dc
@@ -0,0 +1,36 @@
10pR
20.0pR
3.0000pR
4000000000000000000000000.00000000000000000000000pR
5000000000000000000000000000135482346782356pR
6000000000000000000000000002pR
71pR
811pR
9123pR
107505pR
111023468723275435238491972521917846pR
124343472432431705867392073517038270398027352709027389273920739037937960379637893607893607893670530278200795207952702873892786172916728961783907893607418973587857386079679267926737520730925372983782793652793pR
13_1pR
14_203pR
15_57pR
16_18586pR
17_31378682943772818461924738352952347258pR
18_823945628745673589495067238723986520375698237620834674509627345273096287563846592384526349872634895763257893467523987578690283762897568459072348758071071087813501875908127359018715023841710239872301387278pR
19.123521346523546pR
200.1245923756273856pR
21_.1024678456387pR
22_0.8735863475634587pR
234.0pR
24_6.0pR
25234237468293576.000000000000000000000000000000pR
2623987623568943567.00000000000000000005677834650000000000000pR
2723856934568940675.000000000000000435676782300000000000000456784pR
2877567648698496.000000000000000000587674750000000000458563800000000000000pR
292348672354968723.2374823546000000000003256987394502346892435623870000000034578pR
30_2354768.000000000000000000000000000000000000pR
31_96739874567.000000000347683456pR
32_3764568345.000000000004573845000000347683460pR
33_356784356.934568495770004586495678300000000pR
3474325437345273852773827101738273127312738521733017537073520735207307570358738257390761276072160719802671980267018728630178.7082681027680521760217867841276127681270867827821768173178207830710978017738178678012767377058785378278207385237085237803278203782037237582795870pR
35_756752732785273851273728537852738257837283678965738527385272983678372867327835672967385278372637862738627836279863782673862783670.71738178361738718367186378610738617836781603760178367018603760178107735278372832783728367826738627836278378260736270367362073867097307925pR
369812734012837410982345719208345712908357412903587192048571920458712.23957182459817249058172945781pR
diff --git a/testsuite/dc_decimal_results.txt b/testsuite/dc_decimal_results.txt
new file mode 100644
index 000000000..275d431c6
--- /dev/null
+++ b/testsuite/dc_decimal_results.txt
@@ -0,0 +1,51 @@
10
20
30
40
5135482346782356
62
71
811
9123
107505
111023468723275435238491972521917846
1243434724324317058673920735170382703980273527090273892739207390379379\
1360379637893607893607893670530278200795207952702873892786172916728961\
1478390789360741897358785738607967926792673752073092537298378279365279\
153
16-1
17-203
18-57
19-18586
20-31378682943772818461924738352952347258
21-8239456287456735894950672387239865203756982376208346745096273452730\
2296287563846592384526349872634895763257893467523987578690283762897568\
2345907234875807107108781350187590812735901871502384171023987230138727\
248
25.123521346523546
26.1245923756273856
27-.1024678456387
28-.8735863475634587
294.0
30-6.0
31234237468293576.000000000000000000000000000000
3223987623568943567.00000000000000000005677834650000000000000
3323856934568940675.000000000000000435676782300000000000000456784
3477567648698496.00000000000000000058767475000000000045856380000000000\
350000
362348672354968723.237482354600000000000325698739450234689243562387000\
370000034578
38-2354768.000000000000000000000000000000000000
39-96739874567.000000000347683456
40-3764568345.000000000004573845000000347683460
41-356784356.934568495770004586495678300000000
4274325437345273852773827101738273127312738521733017537073520735207307\
43570358738257390761276072160719802671980267018728630178.7082681027680\
4452176021786784127612768127086782782176817317820783071097801773817867\
458012767377058785378278207385237085237803278203782037237582795870
46-7567527327852738512737285378527382578372836789657385273852729836783\
4772867327835672967385278372637862738627836279863782673862783670.71738\
4817836173871836718637861073861783678160376017836701860376017810773527\
498372832783728367826738627836278378260736270367362073867097307925
509812734012837410982345719208345712908357412903587192048571920458712.\
5123957182459817249058172945781
diff --git a/testsuite/dc_divide.dc b/testsuite/dc_divide.dc
new file mode 100644
index 000000000..38b874e9f
--- /dev/null
+++ b/testsuite/dc_divide.dc
@@ -0,0 +1,33 @@
120k
20 1/pR
30 321566/pR
40 0.3984567238456/pR
51 1/pR
61 1287469297356/pR
71 0.2395672438567234/pR
81 237586239856.0293596728392360/pR
91249687284356 3027949207835207/pR
10378617298617396719 35748521/pR
119348576237845624358 0.9857829375461/pR
1235768293846193284 2374568947.045762839567823/pR
13_78987234567812345 876542837618936/pR
14_356789237555535468 0.3375273860984786903/pR
15_5203475364850390 435742903748307.70869378534043296404530458/pR
16_0.37861723347576903 7385770896/pR
17_0.399454682043962 0.34824389304/pR
18_0.6920414523873204 356489645223.76076045304879030/pR
19_35872917389671.7573280963748 73924708/pR
20_78375896314.4836709876983 0.78356798637817/pR
21_2374123896417.143789621437581 347821469423789.1473856783960/pR
22_896729350238549726 _34976289345762/pR
23_2374568293458762348596 _0.8792370647234987679/pR
24_237584692306721845726038 _21783910782374529637.978102738746189024761/pR
25_0.23457980123576298375682 _1375486293874612/pR
26_0.173897061862478951264 _0.8179327486017634987516298745/pR
27_0.9186739823576829347586 _0.235678293458756239846/pR
28_0.9375896183746982374568 _13784962873546.0928729395476283745/pR
29_2930754618923467.12323745862937465 _734869238465/pR
30_23745861923467.874675129834675 _0.23542357869124756/pR
31_3878923750692883.7238596702834756902 _7384192674957215364986723.9738461923487621983/pR
321 0.00000000000000000000000000000000000000000002346728372937352457354204563027/pR
33239854711289345712 2891374 182 .2893 ///pR
diff --git a/testsuite/dc_divide_results.txt b/testsuite/dc_divide_results.txt
new file mode 100644
index 000000000..340ae94c1
--- /dev/null
+++ b/testsuite/dc_divide_results.txt
@@ -0,0 +1,32 @@
10
20
30
41.00000000000000000000
5.00000000000077671755
64.17419336592637110778
7.00000000000420899796
8.00041271738677857404
910591131829.40901859967857131767
109483402361494453751.52388015648196297248
1115063068.13735316451497043884
12-90.11223545260531110575
13-1057067521778623447.45138528213564485251
14-11.94161814246320631346
15-.00000000005126306228
16-1.14705437777218917343
17-.00000000000194126663
18-485262.88923145638029569727
19-100024372711.74763635544535424582
20-.00682569681609989277
2125638.20711150436682153521
222700714504347599627864.24626421085374010264
2310906.42973524078145692731
24.00000000000000017054
25.21260557443109085166
263.89799997647407910677
27.00000000000006801538
283988.13076601933678578945
29100864416620775.31076855630746548983
30.00000000052530099381
3142612515855353136519261264261472677699404182.78776061098893912189
3252187553294928.31582417732156163799
diff --git a/testsuite/dc_divmod.dc b/testsuite/dc_divmod.dc
new file mode 100644
index 000000000..1633203ff
--- /dev/null
+++ b/testsuite/dc_divmod.dc
@@ -0,0 +1,64 @@
120k
20 1~pRpR
30 321566~pRpR
40 0.3984567238456~pRpR
51 1~pRpR
61 1287469297356~pRpR
71 0.2395672438567234~pRpR
81 237586239856.0293596728392360~pRpR
91249687284356 3027949207835207~pRpR
10378617298617396719 35748521~pRpR
119348576237845624358 0.9857829375461~pRpR
1235768293846193284 2374568947.045762839567823~pRpR
13_78987234567812345 876542837618936~pRpR
14_356789237555535468 0.3375273860984786903~pRpR
15_5203475364850390 435742903748307.70869378534043296404530458~pRpR
16_0.37861723347576903 7385770896~pRpR
17_0.399454682043962 0.34824389304~pRpR
18_0.6920414523873204 356489645223.76076045304879030~pRpR
19_35872917389671.7573280963748 73924708~pRpR
20_78375896314.4836709876983 0.78356798637817~pRpR
21_2374123896417.143789621437581 347821469423789.1473856783960~pRpR
22_896729350238549726 _34976289345762~pRpR
23_2374568293458762348596 _0.8792370647234987679~pRpR
24_237584692306721845726038 _21783910782374529637.978102738746189024761~pRpR
25_0.23457980123576298375682 _1375486293874612~pRpR
26_0.173897061862478951264 _0.8179327486017634987516298745~pRpR
27_0.9186739823576829347586 _0.235678293458756239846~pRpR
28_0.9375896183746982374568 _13784962873546.0928729395476283745~pRpR
29_2930754618923467.12323745862937465 _734869238465~pRpR
30_23745861923467.874675129834675 _0.23542357869124756~pRpR
31_3878923750692883.7238596702834756902 _7384192674957215364986723.9738461923487621983~pRpR
321 0.00000000000000000000000000000000000000000002346728372937352457354204563027~pRpR
330k
340 1~pRpR
350 321566~pRpR
360 0.3984567238456~pRpR
371 1~pRpR
381 1287469297356~pRpR
391 0.2395672438567234~pRpR
401 237586239856.0293596728392360~pRpR
411249687284356 3027949207835207~pRpR
42378617298617396719 35748521~pRpR
439348576237845624358 0.9857829375461~pRpR
4435768293846193284 2374568947.045762839567823~pRpR
45_78987234567812345 876542837618936~pRpR
46_356789237555535468 0.3375273860984786903~pRpR
47_5203475364850390 435742903748307.70869378534043296404530458~pRpR
48_0.37861723347576903 7385770896~pRpR
49_0.399454682043962 0.34824389304~pRpR
50_0.6920414523873204 356489645223.76076045304879030~pRpR
51_35872917389671.7573280963748 73924708~pRpR
52_78375896314.4836709876983 0.78356798637817~pRpR
53_2374123896417.143789621437581 347821469423789.1473856783960~pRpR
54_896729350238549726 _34976289345762~pRpR
55_2374568293458762348596 _0.8792370647234987679~pRpR
56_237584692306721845726038 _21783910782374529637.978102738746189024761~pRpR
57_0.23457980123576298375682 _1375486293874612~pRpR
58_0.173897061862478951264 _0.8179327486017634987516298745~pRpR
59_0.9186739823576829347586 _0.235678293458756239846~pRpR
60_0.9375896183746982374568 _13784962873546.0928729395476283745~pRpR
61_2930754618923467.12323745862937465 _734869238465~pRpR
62_23745861923467.874675129834675 _0.23542357869124756~pRpR
63_3878923750692883.7238596702834756902 _7384192674957215364986723.9738461923487621983~pRpR
641 0.00000000000000000000000000000000000000000002346728372937352457354204563027~pRpR
diff --git a/testsuite/dc_divmod_results.txt b/testsuite/dc_divmod_results.txt
new file mode 100644
index 000000000..c55e9303d
--- /dev/null
+++ b/testsuite/dc_divmod_results.txt
@@ -0,0 +1,126 @@
10
20
30
40
50
60
70
81.00000000000000000000
9.00000000165742620220
10.00000000000077671755
11.000000000000000000000404744340951948
124.17419336592637110778
13.000000001121901731436913388268041440
14.00000000000420899796
15.00000053204123177372
16.00041271738677857404
17.00000000000027633393
1810591131829.40901859967857131767
19.000000000000000000008615446968672
209483402361494453751.52388015648196297248
21.00000000001477790730322167374655468
2215063068.13735316451497043884
23-.00000456715270151800
24-90.11223545260531110575
25-.000000000000000000002529869118878532347
26-1057067521778623447.45138528213564485251
27-.0000022326265743225222025732006233770753463532
28-11.94161814246320631346
29-.00000000004830962712
30-.00000000005126306228
31-.0000000000000000000013970700728
32-1.14705437777218917343
33-.0000000001738947526290727016287423110
34-.00000000000194126663
35-.00000000000045885284
36-485262.88923145638029569727
37-.0000000000000000000075040663382506
38-100024372711.74763635544535424582
39-.000001609445227594519190694403080
40-.00682569681609989277
41-.00000019041665271998
4225638.20711150436682153521
43-.000000000000000000005200979673140462744
442700714504347599627864.24626421085374010264
45-.15832010238185026960887316509782343287709
4610906.42973524078145692731
47-.00000436867838665327682
48.00000000000000017054
49-.000000000000000000004322546241638067588696083330
50.21260557443109085166
51-.00000000000000000000103666428264443764258
523.89799997647407910677
53-.000000130244568783188524951028009600190
54.00000000000006801538
55-.00000000467404345575
563988.13076601933678578945
57-.0000000000000000000004406586308076852
58100864416620775.31076855630746548983
59-53336.193401942302558132911110799109649707477
60.00000000052530099381
61.0000000000000000000000000000000000000000000000000000000000000001907\
62266929376630027064745963897
6342612515855353136519261264261472677699404182.78776061098893912189
640
650
660
670
680
690
700
711
721
730
74.0417310245731064
754
761.0000000000000000
770
781249687284356
790
8014621810
8110591131829
82.5164321195789
839483402361494453751
84326154559.235716791539036
8515063068
86-98379182108105
87-90
88-.1523548944025685359
89-1057067521778623447
90-410303423619005.20436836125523739550164962
91-11
92-.37861723347576903
930
94-.051210789003962
95-1
96-.69204145238732040
970
98-65736175.7573280963748
99-485262
100-.58582391357943
101-100024372711
102-2374123896417.143789621437581
1030
104-7243991903570
10525638
106-.2165246218974912344
1072700714504347599627864
108-9361314145225494248.811531234062495956534
10910906
110-.23457980123576298375682
1110
112-.1738970618624789512640000000
1130
114-.2116391019814142152206
1153
116-.9375896183746982374568
1170
118-96095925047.12323745862937465
1193988
120-.07316224567061600
121100864416620775
122-3878923750692883.7238596702834756902
1230
124.0000000000000000000000000000000000000000000184866017689020776005643\
1253621086
12642612515855353136519261264261472677699404182
diff --git a/testsuite/dc_misc.dc b/testsuite/dc_misc.dc
new file mode 100644
index 000000000..222a3ad26
--- /dev/null
+++ b/testsuite/dc_misc.dc
@@ -0,0 +1 @@
zp198202389.289374pzp[Hello, World!]pzpzpfrfczpfR
diff --git a/testsuite/dc_misc_results.txt b/testsuite/dc_misc_results.txt
new file mode 100644
index 000000000..fb321a817
--- /dev/null
+++ b/testsuite/dc_misc_results.txt
@@ -0,0 +1,20 @@
10
2198202389.289374
32
4Hello, World!
54
65
75
84
9Hello, World!
102
11198202389.289374
120
134
145
15Hello, World!
162
17198202389.289374
180
190
200
diff --git a/testsuite/dc_modexp.dc b/testsuite/dc_modexp.dc
new file mode 100644
index 000000000..a6afb9985
--- /dev/null
+++ b/testsuite/dc_modexp.dc
@@ -0,0 +1,103 @@
10 0 1|pR
21 0 1|pR
31 0 2|pR
40 10 1|pR
51 293 1|pR
61 2789365 2|pR
7100 8 7|pR
810922384 15031007 201|pR
93346529 189 254|pR
104113416930 197 14|pR
117709 5887 111|pR
125487406 3252 128|pR
132080527 2279453822 219|pR
1448895 50678 232|pR
151535808383 2902995144 18|pR
168437837 2882198 69|pR
1735363 25806 2|pR
183221177403 1560419989 189|pR
19227 42775 163|pR
202811398069 37500 173|pR
2115046850 3859895697 195|pR
2215770756 3621999893 119|pR
236937927 3719297189 183|pR
2412573 43819 209|pR
2542098463 7584603 136|pR
268656683 1328292415 226|pR
27209 81 157|pR
28141 13317429 26|pR
29809485795 60745 101|pR
304882 1388217898 38|pR
31750704 78 119|pR
32668879580 2888860497 179|pR
331152725844 15295742 154|pR
3416160694 8981529 154|pR
35216 102 3|pR
363691227289 5344109 232|pR
372195559299 61 222|pR
382478990626 13007440 30|pR
3945083 44 117|pR
40224 55824 53|pR
411372700133 89 94|pR
42205 10422 48|pR
4311887 12 73|pR
445955 24353 114|pR
451201697310 789722419 6|pR
4656577 231 229|pR
4796 38841 189|pR
486529661 5636520 209|pR
4911005 15955685 27|pR
509709 231 132|pR
5159790 1034579699 166|pR
5247892 14536879 79|pR
5348 208 21|pR
5433036 3877 65|pR
55164 6527085 249|pR
5612146850 224 37|pR
57218 16425679 62|pR
5851 27641 95|pR
593076735605 49154 32|pR
60515652717 4117874315 143|pR
61300672671 720768884 110|pR
629422066 206 5|pR
6343 97 13|pR
64545174510 65319 126|pR
653317462730 704990271 51|pR
6647316 23231 202|pR
677236571 4379567 106|pR
682584584521 2459274189 29|pR
6961562 5035178 178|pR
7065302 112 151|pR
7163040 2168854052 213|pR
729039611 2370306559 62|pR
7316414384 1020652061 83|pR
747491 3853569905 172|pR
751180322494 46670 84|pR
763823343557 3865107254 127|pR
776240872 55335 39|pR
782281401897 1098411 251|pR
7961 2949190429 231|pR
808981024 162 43|pR
811 3568883218 212|pR
824217100969 3471787779 8|pR
833232237 13 243|pR
8429280 3972452706 100|pR
8513077 6431923 216|pR
86104 3098510775 140|pR
879503298 174 242|pR
883424695712 12184 23|pR
89184 15066347 151|pR
902935856 14003205 184|pR
911386637762 2128151420 71|pR
92154 11960656 12|pR
93743976432 4004778779 136|pR
943909160595 3575680922 21|pR
9526133 3580 147|pR
96409154 170 68|pR
97149 55629 40|pR
985753 13776176 32|pR
993831447473 658273178 98|pR
1001527252003 2300622 207|pR
1013363824553 8244645 215|pR
10220 145 101|pR
1034005077294 2196555621 94|pR
diff --git a/testsuite/dc_modexp_results.txt b/testsuite/dc_modexp_results.txt
new file mode 100644
index 000000000..5bf0f146e
--- /dev/null
+++ b/testsuite/dc_modexp_results.txt
@@ -0,0 +1,103 @@
11
21
31
40
50
61
74
874
91
100
1198
120
1372
141
151
161
171
18108
1936
2052
2165
228
23181
2422
257
26123
2793
2821
2917
3020
311
32108
3358
3422
350
36105
37161
3816
3940
4015
4145
4225
4364
4469
450
46225
4727
481
4922
5073
5192
5238
5315
5416
55173
5633
5732
5821
5925
60109
6171
621
634
6462
6515
6690
6729
685
6940
7084
7140
7253
738
7431
7564
7644
7714
7813
79145
801
811
821
8376
840
85189
86104
87192
889
89119
9056
9145
924
9332
9416
95135
964
9729
981
9949
1000
101128
1026
10318
diff --git a/testsuite/dc_modulus.dc b/testsuite/dc_modulus.dc
new file mode 100644
index 000000000..613944b20
--- /dev/null
+++ b/testsuite/dc_modulus.dc
@@ -0,0 +1,70 @@
120k
21 1%pR
32 1%pR
416 4%pR
515 4%pR
617 4%pR
72389473 5%pR
839240687239 1%pR
9346728934 23958%pR
103496723859067234 298375462837546928347623059375486%pR
11_1 1%pR
12_2 1%pR
13_47589634875689345 37869235%pR
14_1274852934765 2387628935486273546%pR
15_6324758963 237854962%pR
161 _1%pR
172 _1%pR
182 _2%pR
192 _3%pR
2016 5%pR
2115 5%pR
2214 5%pR
2389237423 _237856923854%pR
24123647238946 _12467%pR
25_1 _1%pR
26_2 _1%pR
27_2 _2%pR
28_2 _3%pR
29_13 _7%pR
30_14 _7%pR
31_15 _7%pR
32_12784956 _32746%pR
33_127849612 _23712347682193%pR
340k
351 1%pR
362 1%pR
3716 4%pR
3815 4%pR
3917 4%pR
402389473 5%pR
4139240687239 1%pR
42346728934 23958%pR
433496723859067234 298375462837546928347623059375486%pR
44_1 1%pR
45_2 1%pR
46_47589634875689345 37869235%pR
47_1274852934765 2387628935486273546%pR
48_6324758963 237854962%pR
491 _1%pR
502 _1%pR
512 _2%pR
522 _3%pR
5316 5%pR
5415 5%pR
5514 5%pR
5689237423 _237856923854%pR
57123647238946 _12467%pR
58_1 _1%pR
59_2 _1%pR
60_2 _2%pR
61_2 _3%pR
62_13 _7%pR
63_14 _7%pR
64_15 _7%pR
65_12784956 _32746%pR
66_127849612 _23712347682193%pR
67_3191280681 641165986%pR
680k _899510228 _2448300078.40314%pR
690k _7424863 _207.2609738667%pR
700k 3769798918 0.6%pR
diff --git a/testsuite/dc_modulus_results.txt b/testsuite/dc_modulus_results.txt
new file mode 100644
index 000000000..7d718d22a
--- /dev/null
+++ b/testsuite/dc_modulus_results.txt
@@ -0,0 +1,68 @@
10
20
30
40
50
60
70
8.00000000000000002026
92747189239559.46904933397471305894
100
110
12-.00000000000011057855
13-.00076922992566770712
14-.00000000000050364144
150
160
170
18.00000000000000000002
190
200
210
22.00000000070585524350
23.00000000000000002898
240
250
260
27-.00000000000000000002
28-.00000000000000000005
290
30-.00000000000000000002
31-.00000000000000011722
32-.00000002640923745817
330
340
350
363
371
383
390
408758
413496723859067234
420
430
44-8236960
45-1274852934765
46-140529951
470
480
490
502
511
520
534
5489237423
556692
560
570
580
59-2
60-6
610
62-1
63-14016
64-127849612
65-626616737
66-899510228.00000
67-153.1331732059
68.4
diff --git a/testsuite/dc_multiply.dc b/testsuite/dc_multiply.dc
new file mode 100644
index 000000000..1f9041d06
--- /dev/null
+++ b/testsuite/dc_multiply.dc
@@ -0,0 +1,42 @@
10 0*pR
20.000 0*pR
31 0*pR
40 1*pR
50 2498752389672835476*pR
6873246913745129084576134 0*pR
71 472638590273489273456*pR
812374861230476103672835496 1*pR
91 1*pR
102 1*pR
111 2*pR
122 2*pR
133 14*pR
1417 8*pR
151892467513846753 1872439821374591038746*pR
16328962735862.2973546835638947635 1728465791348762356*pR
1738745962374538.387427384672934867234 0.1932476528394672837568923754*pR
189878894576289457634856.2738627161689017387608947567654 37842939768237596237854203.29874372139852739126739621793162*pR
19_1 1*pR
20_1 2*pR
2178893457 _34876238956*pR
22235678324957634 _0.2349578349672389576*pR
23_12849567821934 12738462937681*pR
241274861293467.927843682937462 _28935678239*pR
252936077239872.12937462836 _0.012842357682435762*pR
262387692387566.2378569237546 _272189345628.123875629835876*pR
270.012348629356782835962 _23487692356*pR
280.4768349567348675934 _0.23756834576934857638495*pR
290.98748395367485962735486 _4675839462354867.376834956738456*pR
30_321784627934586 _235762378596*pR
31_32578623567892356 _0.32567384579638456*pR
32_35768232346876 _2348672935602387620.28375682349576237856*pR
33_0.2356728394765234 _238759624356978*pR
34_0.2345768212346780 _0.235768124697074385948943532045*pR
35_0.370873860736785306278630 _7835678398607.7086378076867096270*pR
36_78365713707.7089637863786730 _738580798679306780*pR
37_73867038956790490258249 _0.7379862716391723672803679*pR
38_378621971598721837710387 _98465373878350798.09743896037963078560*pR
3937164201 2931559660*pR
40679468076118972457796560530571.46287161642138401685 93762.2836*pR
41.000000000000000000000000001 .0000000000000000000000001*pR
42239 289 _98 .8937 _.1893 28937*****pR
diff --git a/testsuite/dc_multiply_results.txt b/testsuite/dc_multiply_results.txt
new file mode 100644
index 000000000..9666059a5
--- /dev/null
+++ b/testsuite/dc_multiply_results.txt
@@ -0,0 +1,43 @@
10
20
30
40
50
60
7472638590273489273456
812374861230476103672835496
91
102
112
124
1342
14136
153543531533584430580556128344529291738
16568600835566479683035874339053.4411638427543228060
177487566285885.8557453089005171423976251098
18373846412427291014394738378015501363938345620046.7869650248829232267\
192297002026819
20-1
21-2
22-2751507058396910892
23-55374468980751.0837656919743223184
24-163683743464924630346895054
25-36888976187143312550878.567134791289418
26-37706154097.696628262157533781
27-649904428532907022680241.947918694247541
28-290040807.350385412976669306472
29-.11328089187650139309272
30-4617316439035114.40320367843985107357898
3175864709277486862054521256
3210610005628108234.92015040406042336
3384007879267445533366251128067927.91168012197674537856
3456269158624557.1027018519702852
35.055305737239900889424090264801
362906048299183.472237078104362540110129
3757879411419313585866282299201.3825582163029400
3854512860676747314187949.9414724679950990587298071
3937281153992026463004361915151761464058058.54968338992209002720
40108949072447731660
4163708478450213482928510139572007971.83536929222529239687
420
4333137343861.8586
diff --git a/testsuite/dc_power.dc b/testsuite/dc_power.dc
new file mode 100644
index 000000000..b58ae0cbc
--- /dev/null
+++ b/testsuite/dc_power.dc
@@ -0,0 +1,45 @@
120k
20 0^pR
30 1^pR
40 1894^pR
51 0^pR
639746823 0^pR
70.238672983047682 0^pR
818394762374689237468.97354862973846 0^pR
91 1^pR
102 1^pR
1118927361346 1^pR
120.23523785962738592635777 1^pR
13328956734869213746.89782398457234 1^pR
148937 98^pR
150.124876812394 2396^pR
1693762.2836 13^pR
171 _1^pR
182 _1^pR
1910 _1^pR
20683734768 _1^pR
2138579623756.897937568235 _1^pR
221 _32467^pR
232 _53^pR
2423897 _213^pR
25_1 1^pR
26_1 2^pR
27_2 1^pR
28_2 2^pR
29_237 294^pR
30_3746 28^pR
31_0.3548 35^pR
32_4267.234 37^pR
33_326.3246 78^pR
34_1 _1^pR
35_1 _2^pR
36_2 _1^pR
37_2 _2^pR
38_237 _293^pR
39_784 _23^pR
40_86 _7^pR
41_0.23424398 _781^pR
42_178.234786 _879^pR
43_1274.346 _768^pR
440 _251^pR
45_0.2959371298 227^pR
diff --git a/testsuite/dc_power_results.txt b/testsuite/dc_power_results.txt
new file mode 100644
index 000000000..997f44f59
--- /dev/null
+++ b/testsuite/dc_power_results.txt
@@ -0,0 +1,73 @@
11
20
30
41
51
61
71
81
92
1018927361346
11.23523785962738592635777
12328956734869213746.89782398457234
1316473742664221279051571200630760751138799221376964991600670000200609\
1408006052596520320731708604393844468006290371918262741885989163144389\
1539367835091560809036359941703341471396407660150658436796925310445979\
1621333166245765946557344383284626113908419359990042883048537750217279\
1717481980123593363177308481941550382845381799410533956718500484099889\
18610805653325917409549921909941664118421333562129
190
2043287877285033571298394739716218787350087163435619825150259705419.98\
21016445740928054425
221.00000000000000000000
23.50000000000000000000
24.10000000000000000000
25.00000000146255543348
26.00000000002592041867
271.00000000000000000000
28.00000000000000011102
290
30-1
311
32-2
334
3414997322375665265051328725757939209353051902095893907150382724666290\
3549749481660976421019742616298227588464420182758442163654172400528243\
3600885441207762486233574213374503090372518590691583139696652847404883\
3708573912261119588874308960204159666762789603037188471170006223907416\
3860492840269152716750700089148882139254399347568222390231015487895905\
3973727080561379177721440905866857248917982113340543176658480139248897\
4054802503253413282808814063861470711399810899724515727713334909764746\
4127910290211411231279325882505708287941671508154740003122373284699097\
4278346501539634198926772266511968381368929692275950529960923432771985\
4312597189390708050983487158873301681237787429436264801751664042999180\
443448659818912436089
4511478830555358864333472551120140548480416206583184496764727387456058\
46792742209537931243951391229607936
47-.00000000000000017759
48-2067373624686414405470850679965010694114490999957199847684803894306\
4956243666149296582304582679590231948238805965642713928910384741502707\
50.23224479257866798694
5111606078892843496082360561256965139908586179418605021706789617179085\
5285768049299693425729565480314913006780973928345684673490252494674985\
530186164225375953066263609289359900615361965737717208159874390.293769\
5470206344604971
55-1.00000000000000000000
561.00000000000000000000
57-.50000000000000000000
58.25000000000000000000
590
600
61-.00000000000002874159
62-1945134149489344891879057554905782841936258356736314337975569799825\
6394091939572752348215929683891336730843553721422164737465108229034947\
6487333189564755763444242676978610321731298729194092653999616928308494\
6526419468484566422775668903315088810746121307679948574976162519479931\
6618935243698160094347216562490000767121041786977792546155155934655909\
6714123833869470494708767968978717730012864171105540029928688274136791\
6898175053824022144065005509214813689232148489884560100200475909009813\
69340098100705258138.98542904577525702068
700
710
720
730
diff --git a/testsuite/dc_sqrt.dc b/testsuite/dc_sqrt.dc
new file mode 100644
index 000000000..7c13fdd0b
--- /dev/null
+++ b/testsuite/dc_sqrt.dc
@@ -0,0 +1,14 @@
120k
20vpR
32vpR
44vpR
59vpR
616vpR
725vpR
8121vpR
948765vpR
109287356207356vpR
110.189274385967238956872354vpR
1212389467137496823.134567829387456283946vpR
13.0000000000000000000000000000123vpR
141vpR
diff --git a/testsuite/dc_sqrt_results.txt b/testsuite/dc_sqrt_results.txt
new file mode 100644
index 000000000..5ded8c294
--- /dev/null
+++ b/testsuite/dc_sqrt_results.txt
@@ -0,0 +1,13 @@
10
21.41421356237309504880
32.00000000000000000000
43.00000000000000000000
54.00000000000000000000
65.00000000000000000000
711.00000000000000000000
8220.82798735667542192643
93047516.39985021245496456781
10.435056761776252544285578
11111307983.260397019622398608908
12.0000000000000035071355833500363
131.00000000000000000000
diff --git a/testsuite/dc_strings.dc b/testsuite/dc_strings.dc
new file mode 100644
index 000000000..2f6b38d88
--- /dev/null
+++ b/testsuite/dc_strings.dc
@@ -0,0 +1,37 @@
1[Hello, World!]ZpR
2[Hello, World!]pR
3[Hello, \[ World!]ZpR
4[Hello, \[ World!]pR
5[Hello, \] World!]ZpR
6[Hello, \] World!]pR
7[30pR]
8[29pR]
9[28pR]
10[27pR]
11[26pR]
12[25pR]
13[24pR]
14[23pR]
15[22pR]
16[21pR]
17[20pR]
18[19pR]
19[18pR]
20[17pR]
21[16pR]
22[15pR]
23[14pR]
24[13pR]
25[12pR]
26[11pR]
27[10pR]
28[9pR]
29[8pR]
30[7pR]
31[6pR]
32[5pR]
33[4pR]
34[3pR]
35[2pR]
36[1pR]
37[xz0<x]dsxx
diff --git a/testsuite/dc_strings_results.txt b/testsuite/dc_strings_results.txt
new file mode 100644
index 000000000..d606637cc
--- /dev/null
+++ b/testsuite/dc_strings_results.txt
@@ -0,0 +1,36 @@
113
2Hello, World!
316
4Hello, \[ World!
516
6Hello, \] World!
71
82
93
104
115
126
137
148
159
1610
1711
1812
1913
2014
2115
2216
2317
2418
2519
2620
2721
2822
2923
3024
3125
3226
3327
3428
3529
3630
diff --git a/testsuite/dc_subtract.dc b/testsuite/dc_subtract.dc
new file mode 100644
index 000000000..2cb4104fb
--- /dev/null
+++ b/testsuite/dc_subtract.dc
@@ -0,0 +1,33 @@
10 0-pR
20 1-pR
31 0-pR
41 1-pR
55 2-pR
62 9-pR
7321974 12845976238457-pR
82874519803456710938465 384723854-pR
910000000000000000000000000000000000000000 999999999999999999999999999999999999999-pR
1010000000000000000000000000000000000000000 9999999999999999999999999999999999999999-pR
1110000000000000000000000000000000000000000 999999999999999999999999999999999999999.99999999999999999999999999999999999-pR
1210000000000000000000000000000000000000000 9999999999999999999999999999999999999999.9999999999999999999999999999999999-pR
1310000000000000000000000000000000000000000 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000001-pR
1410000000000000000000000000000000000000001 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000001-pR
1510000000000000000000000000000000000000000.0000000001 0.0000000000000000000000000000000000000000000000000000000000000000000000000001-pR
16_2 6-pR
17_23784692345 182934721309467230894628735496027345-pR
18_224352354962873059862 _1245723576829456278354960278345-pR
19_3468273598 _12354243-pR
20_0.92345768293 _2354768923-pR
21_712384634.123476823 _24768293376-pR
22_1879234638 _0.917234869234-pR
23_0.9172438692134 _0.971284967124-pR
24_0.1283475123465 _0.937462346-pR
25_124765829346.2837468293562 _0.923467829346-pR
26_12476829385769 _1928476259034.8378629356-pR
27_0.38476284395876345 _94875394587623.2357869324857-pR
28_4674596708467.34754789403674343567 _48672394852354698.237548629345-pR
29979519669 3018100865-pR
30929002449 3280677283-pR
310 _525898-pR
323 _3-pR
332 _1 2893714 _2189367411289 _.8921374 3.9201384----pR
diff --git a/testsuite/dc_subtract_results.txt b/testsuite/dc_subtract_results.txt
new file mode 100644
index 000000000..9f7726254
--- /dev/null
+++ b/testsuite/dc_subtract_results.txt
@@ -0,0 +1,37 @@
10
2-1
31
40
53
6-7
7-12845975916483
82874519803456326214611
99000000000000000000000000000000000000001
101
119000000000000000000000000000000000000000.000000000000000000000000000\
1200000001
13.0000000000000000000000000000000001
149999999999999999999999999999999999999999.999999999999999999999999999\
1599999999999999999999999999999999999999999999999999999999999
1610000000000000000000000000000000000000000.99999999999999999999999999\
17999999999999999999999999999999999999999999999999999999999999
1810000000000000000000000000000000000000000.00000000009999999999999999\
1999999999999999999999999999999999999999999999999999
20-8
21-182934721309467230894628759280719690
221245723576605103923392087218483
23-3455919355
242354768922.07654231707
2524055908741.876523177
26-1879234637.082765130766
27.0540410979106
28.8091148336535
29-124765829345.3602790000102
30-10548353126734.1621370644
3194875394587622.85102408852693655
3248667720255646230.89000073530825656433
33-2038581196
34-2351674834
35525898
366
37-2189370304999.1877242
diff --git a/testsuite/dcx_vars.dc b/testsuite/dcx_vars.dc
new file mode 100644
index 000000000..bbe73b47d
--- /dev/null
+++ b/testsuite/dcx_vars.dc
@@ -0,0 +1,2 @@
1298734.8921702348sx_928374892.28937syzpRlxly+pR
2298734.8921702348S xotj _928374892.28937S yotp zpRl xotj l yotp-pRzpR L xotj L yotp-pR
diff --git a/testsuite/dcx_vars_results.txt b/testsuite/dcx_vars_results.txt
new file mode 100644
index 000000000..6f18e7a84
--- /dev/null
+++ b/testsuite/dcx_vars_results.txt
@@ -0,0 +1,6 @@
10
2-928076157.3971997652
30
4928673627.1815402348
50
6928673627.1815402348