return cl_LF_I_div(x,y);
} else {
DeclareType(cl_RT,y);
- var const cl_I& u = TheRatio(y)->numerator; // u /= 0
- var const cl_I& v = TheRatio(y)->denominator; // v /= 0
+ var const cl_I& u = numerator(y); // u /= 0
+ var const cl_I& v = denominator(y); // v /= 0
return cl_LF_I_div(The(cl_LF)(cl_LF_I_mul(x,v)),u);
}
}
return cl_LF_I_mul(x,y);
} else {
DeclareType(cl_RT,y);
- var const cl_I& u = TheRatio(y)->numerator; // u /= 0
- var const cl_I& v = TheRatio(y)->denominator; // v /= 0
+ var const cl_I& u = numerator(y); // u /= 0
+ var const cl_I& v = denominator(y); // v /= 0
return cl_LF_I_div(The(cl_LF)(cl_LF_I_mul(x,u)),v);
}
}
return cl_I_LF_div(x,y);
} else {
DeclareType(cl_RT,x);
- var const cl_I& u = TheRatio(x)->numerator;
- var const cl_I& v = TheRatio(x)->denominator; // v /= 0
+ var const cl_I& u = numerator(x);
+ var const cl_I& v = denominator(x); // v /= 0
return cl_I_LF_div(u,The(cl_LF)(cl_LF_I_mul(y,v)));
}
}
// I_I_div_RA(a,b)
extern const cl_RA I_I_div_RA (const cl_I& a, const cl_I& b);
-// Liefert den Zähler einer rationalen Zahl.
-// numerator(r)
-inline const cl_I numerator (const cl_RA& r)
-{
- if (integerp(r)) {
- DeclareType(cl_I,r);
- return r;
- } else
- return TheRatio(r)->numerator;
-}
-
-// Liefert den Nenner einer rationalen Zahl.
-// denominator(r)
-inline const cl_I denominator (const cl_RA& r)
-{
- if (integerp(r))
- return 1;
- else
- return TheRatio(r)->denominator;
-}
-
// Liefert Zähler und Nenner einer rationalen Zahl.
// RA_numden_I_I(r, num=,den=);
// > r: rationale Zahl
// Implementation.
-#define denominator inline_denominator
#include "rational/cl_RA.h"
-#undef denominator
namespace cln {
const cl_I denominator (const cl_RA& r)
{
- return inline_denominator(r);
+ if (integerp(r))
+ return 1;
+ else
+ return TheRatio(r)->denominator;
}
} // namespace cln
// Implementation.
-#define numerator inline_numerator
#include "rational/cl_RA.h"
-#undef numerator
namespace cln {
const cl_I numerator (const cl_RA& r)
{
- return inline_numerator(r);
+ if (integerp(r)) {
+ DeclareType(cl_I,r);
+ return r;
+ } else
+ return TheRatio(r)->numerator;
}
} // namespace cln