#include "cl_LF.h"
#include "cln/integer.h"
-#undef MAYBE_INLINE
-#define MAYBE_INLINE inline
+#include "cl_inline.h"
#include "cl_LF_zerop.cc"
#include "cl_LF_minusp.cc"
#include "cl_LF_exponent.cc"
const cl_LF lnx_naive (const cl_LF& x)
{
var cl_LF y = x-cl_float(1,x);
- if (zerop(y)) // y=0.0 -> y als Ergebnis
+ if (zerop_inline(y)) // y=0.0 -> y als Ergebnis
return y;
- var uintL actuallen = TheLfloat(x)->len;
+ var uintC actuallen = TheLfloat(x)->len;
var uintC d = float_digits(x);
- var sintE e = float_exponent(y);
+ var sintE e = float_exponent_inline(y);
if (e <= -(sintC)d) // e <= -d ?
return y; // ja -> y als Ergebnis
{ Mutable(cl_LF,x);
- var uintL k = 0; // Rekursionszähler k:=0
+ var uintL k = 0; // Rekursionszähler k:=0
// Bei e <= -1-limit_slope*floor(sqrt(d)) kann die Potenzreihe
// angewandt werden.
- // Wähle für ln(1+y), naive1: limit_slope = 1.0,
- // für ln(1+y), naive2: limit_slope = 11/16 = 0.7,
- // für atanh(z), naive1: limit_slope = 0.6,
- // für atanh(z), naive1: limit_slope = 0.5.
+ // Wähle für ln(1+y), naive1: limit_slope = 1.0,
+ // für ln(1+y), naive2: limit_slope = 11/16 = 0.7,
+ // für atanh(z), naive1: limit_slope = 0.6,
+ // für atanh(z), naive1: limit_slope = 0.5.
var sintL e_limit = -1-floor(isqrtC(d),2); // -1-floor(sqrt(d))
while (e > e_limit) {
- // e > -1-floor(sqrt(d)) -> muß |y| verkleinern.
+ // e > -1-floor(sqrt(d)) -> muß |y| verkleinern.
x = sqrt(x); // x := (sqrt x)
y = x-cl_float(1,x); // y := (- x 1) und
- e = float_exponent(y); // e neu berechnen
+ e = float_exponent_inline(y); // e neu berechnen
k = k+1; // k:=k+1
}
if (0) {
if (e <= -(sintC)d) // e <= -d ?
return y; // ja -> y als Ergebnis
{ Mutable(cl_F,x);
- var uintL k = 0; // Rekursionszähler k:=0
+ var uintL k = 0; // Rekursionszähler k:=0
// Bei e <= -1-floor(sqrt(d)) kann die Potenzreihe angewandt werden.
var sintL e_limit = -1-isqrtC(d); // -1-floor(sqrt(d))
while (e > e_limit) {
- // e > -1-floor(sqrt(d)) -> muß |y| verkleinern.
+ // e > -1-floor(sqrt(d)) -> muß |y| verkleinern.
x = sqrt(x); // x := (sqrt x)
y = x-cl_float(1,x); // y := (- x 1) und
e = float_exponent(y); // e neu berechnen