extern cl_class cl_class_lfloat;
// Type tests.
-inline cl_boolean rationalp (const cl_R& x)
+inline bool rationalp (const cl_R& x)
{
if (!x.pointer_p()) {
if (x.nonpointer_tag() == cl_FN_tag)
- return cl_true;
+ return true;
} else {
if (x.pointer_type()->flags & cl_class_flags_subclass_rational)
- return cl_true;
+ return true;
}
- return cl_false;
+ return false;
}
-inline cl_boolean integerp (const cl_R& x)
+inline bool integerp (const cl_R& x)
{
if (!x.pointer_p()) {
if (x.nonpointer_tag() == cl_FN_tag)
- return cl_true;
+ return true;
} else {
if (x.pointer_type() == &cl_class_bignum)
- return cl_true;
+ return true;
}
- return cl_false;
+ return false;
}
-inline cl_boolean floatp (const cl_R& x)
+inline bool floatp (const cl_R& x)
{
if (!x.pointer_p()) {
switch (x.nonpointer_tag()) {
#if defined(CL_WIDE_POINTERS)
case cl_FF_tag:
#endif
- return cl_true;
+ return true;
}
} else {
if (x.pointer_type()->flags & cl_class_flags_subclass_float)
- return cl_true;
+ return true;
}
- return cl_false;
+ return false;
}
// Comparison with a fixnum.
-inline cl_boolean eq (const cl_R& x, sint32 y)
+inline bool eq (const cl_R& x, sint32 y)
{
- return (cl_boolean)(x.word == cl_combine(cl_FN_tag,y));
+ return x.word == cl_combine(cl_FN_tag,y);
}
-inline cl_boolean exact_zerop (const cl_R& x)
+inline bool exact_zerop (const cl_R& x)
{
return eq(x,0);
}
// Macro: verteilt je nach Real-Typ eines Floats x auf 2 Statements,
-// die x vom jeweiligen Real-Typ benutzen dürfen.
+// die x vom jeweiligen Real-Typ benutzen dürfen.
// realcase2(x, RA_statement,F_statement);
// x sollte eine Variable sein.
#define realcase2(x, RA_statement,F_statement) \
#endif
// Macro: verteilt je nach Real-Typ eines Floats x auf 7 Statements,
-// die x vom jeweiligen Real-Typ benutzen dürfen.
+// die x vom jeweiligen Real-Typ benutzen dürfen.
// realcase7(x, FN_statement,BN_statement,RT_statement,SF_statement,FF_statement,DF_statement,LF_statement);
// x sollte eine Variable sein.
#define realcase7(x, FN_statement,BN_statement,RT_statement,SF_statement,FF_statement,DF_statement,LF_statement) \
)
// Macro: verteilt je nach Real-Typ eines Floats x auf 6 Statements,
-// die x vom jeweiligen Real-Typ benutzen dürfen.
+// die x vom jeweiligen Real-Typ benutzen dürfen.
// realcase6(x, I_statement,RT_statement,SF_statement,FF_statement,DF_statement,LF_statement);
// x sollte eine Variable sein.
#define realcase6(x, I_statement,RT_statement,SF_statement,FF_statement,DF_statement,LF_statement) \
}
// cl_somefloat(x,y) wandelt eine reelle Zahl x in ein Float-Format um
-// (das von y, falls x rational ist) und rundet dabei nötigenfalls.
+// (das von y, falls x rational ist) und rundet dabei nötigenfalls.
// > x: eine reelle Zahl
// > y: ein Float
// < ergebnis: x als Float