Require Import BigQ. Open Scope int31_scope. Check I31. (* Would be nice to have I31 : digits->digits->...->int31 For the moment, I31 : digits31 int31, which is better than (fix nfun .....) size int31 *) Check 2. Check 1000000000000000000. (* = 660865024, after modulo 2^31 *) Check (add31 2 2). Check (2+2). Eval compute in 2+2. Eval compute in 65675757 * 565675998. Close Scope int31_scope. Open Scope bigN_scope. Check 2. Check 1000000000000000000. Check (BigN.add 2 2). Check (2+2). Eval compute in 2+2. Eval compute in 65675757 * 565675998. Close Scope bigN_scope. Open Scope bigZ_scope. Check 2. Check -1000000000000000000. Check (BigZ.add 2 2). Check (2+2). Eval compute in 2+2. Eval compute in 65675757 * 565675998. Close Scope bigN_scope. Open Scope bigQ_scope. Check 2. Check -1000000000000000000. Check (BigQ.add 2 2). Check (2+2). Eval compute in 2+2. Eval compute in 65675757 * 565675998. (* fractions *) Check (BigQ.Qq 6562%bigZ 456%bigN). (* Having to say %bigZ and %bigN is a BUG! *) Eval compute in (BigQ.red (BigQ.Qq 6562%bigZ 456%bigN)). Eval compute in (1/10000). Close Scope bigQ_scope.