UNPKG

685 Btext/coffeescriptView Raw
1# Bignum compare
2#
3# returns
4#
5# -1 a < b
6#
7# 0 a = b
8#
9# 1 a > b
10
11
12
13mcmp = (a,b) ->
14 return a.compare b
15
16# a is a bigint, n is a normal int
17mcmpint = (a,n) ->
18 b = bigInt(n)
19 t = mcmp(a, b)
20 return t
21
22###
23#if SELFTEST
24
25void
26test_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###