1 | # Bignum compare
|
2 | #
|
3 | # returns
|
4 | #
|
5 | # -1 a < b
|
6 | #
|
7 | # 0 a = b
|
8 | #
|
9 | # 1 a > b
|
10 |
|
11 |
|
12 |
|
13 | mcmp = (a,b) ->
|
14 | return a.compare b
|
15 |
|
16 | # a is a bigint, n is a normal int
|
17 | mcmpint = (a,n) ->
|
18 | b = bigInt(n)
|
19 | t = mcmp(a, b)
|
20 | return t
|
21 |
|
22 | ###
|
23 | #if SELFTEST
|
24 |
|
25 | void
|
26 | test_mcmp(void)
|
27 | {
|
28 | int i, j, k
|
29 | unsigned int *x, *y
|
30 | logout("testing mcmp\n")
|
31 | for (i = -1000; i < 1000; i++) {
|
32 | x = mint(i)
|
33 | for (j = -1000; j < 1000; j++) {
|
34 | y = mint(j)
|
35 | k = mcmp(x, y)
|
36 | if (i == j && k != 0) {
|
37 | logout("failed\n")
|
38 | errout()
|
39 | }
|
40 | if (i < j && k != -1) {
|
41 | logout("failed\n")
|
42 | errout()
|
43 | }
|
44 | if (i > j && k != 1) {
|
45 | logout("failed\n")
|
46 | errout()
|
47 | }
|
48 | mfree(y)
|
49 | }
|
50 | mfree(x)
|
51 | }
|
52 | logout("ok\n")
|
53 | }
|
54 |
|
55 | #endif
|
56 | ###
|