7 #include "cl_integer.h"
15 cl_boolean cl_equal (const cl_I& x, const cl_I& y)
18 // x und y haben gleiches Vorzeichen ->
20 // y Fixnum -> direkt vergleichen.
21 // y Bignum -> verschieden.
23 // y Fixnum -> verschieden.
25 // falls beide gleich lang, wortweise vergleichen, sonst verschieden.
30 { // This assumes cl_value_shift + cl_value_len == cl_pointer_size.
31 return (cl_boolean) ((cl_sint)x.word == (cl_sint)y.word);
43 if (x.pointer == y.pointer)
44 return cl_true; // gleiche Pointer -> selbe Zahl
46 { var uintC xlen = TheBignum(x)->length;
47 var uintC ylen = TheBignum(y)->length;
49 // gleiche Länge -> digitweise vergleichen
50 return (cl_boolean) (compare_loop_msp(BN_MSDptr(x),BN_MSDptr(y),xlen) == 0);