14 #include "cl_integer.h"
16 inline cl_boolean cl_equal (const cl_F& x, const cl_F& y)
18 return (cl_boolean) (cl_compare(x,y) == 0);
21 cl_boolean cl_equal (const cl_R& x, const cl_R& y)
24 // Beide rational oder beide Floats -> klar.
25 // Eine rational, eine Float ->
26 // Die rationale Zahl muß einen Zweierpotenz-Nenner haben, sonst verschieden.
27 // Die rationale Zahl zum Float machen, vergleichen.
28 // Verschieden -> Das war's.
29 // Gleich -> Das Float mit RATIONAL rational machen, nochmals vergleichen.
32 , // beides rationale Zahlen
34 , // x rational, y Float -> x in Float umwandeln
35 if (!power2p(denominator(x)))
37 if (!cl_equal(cl_float(x,y),y))
39 return cl_equal(x,rational(y));
42 , // x Float, y rational -> y in Float umwandeln
43 if (!power2p(denominator(y)))
45 if (!cl_equal(x,cl_float(y,x)))
47 return cl_equal(rational(x),y);