4 #include "base/cl_sysdep.h"
7 #include "cln/integer.h"
12 #include "integer/cl_I.h"
13 #include "base/digitseq/cl_DS.h"
17 bool equal (const cl_I& x, const cl_I& y)
20 // x und y haben gleiches Vorzeichen ->
22 // y Fixnum -> direkt vergleichen.
23 // y Bignum -> verschieden.
25 // y Fixnum -> verschieden.
27 // falls beide gleich lang, wortweise vergleichen, sonst verschieden.
32 { // This assumes cl_value_shift + cl_value_len == cl_pointer_size.
33 return (cl_sint)x.word == (cl_sint)y.word;
45 if (x.pointer == y.pointer)
46 return true; // gleiche Pointer -> selbe Zahl
48 { var uintC xlen = TheBignum(x)->length;
49 var uintC ylen = TheBignum(y)->length;
51 // gleiche Länge -> digitweise vergleichen
52 return compare_loop_msp(BN_MSDptr(x),BN_MSDptr(y),xlen) == 0;