// cosh().
// General includes.
-#include "cl_sysdep.h"
+#include "base/cl_sysdep.h"
// Specification.
#include "cln/float.h"
// Implementation.
-#include "cl_F_tran.h"
-#include "cl_F.h"
+#include "float/transcendental/cl_F_tran.h"
+#include "float/cl_F.h"
#include "cln/lfloat.h"
-#include "cl_LF.h"
+#include "float/lfloat/cl_LF.h"
namespace cln {
const cl_F cosh (const cl_F& x)
{
// Methode:
-// Genauigkeit erhöhen,
+// Genauigkeit erhöhen,
// e := Exponent aus (decode-float x), d := (float-digits x)
// falls x=0.0 oder e<=(1-d)/2 liefere 1.0
// (denn bei e<=(1-d)/2 ist 1 <= cosh(x) = 1+x^2/2+... < 1+2^(-d),
// cosh(x) = 1+x*y*(sinh(y)/y)^2 errechnen.
// falls e>=0: y:=exp(x) errechnen, (scale-float (+ y (/ y)) -1) bilden.
- var sintL e = float_exponent(x);
+ var sintE e = float_exponent(x);
if (e < 0) { // Exponent e abtesten
// e<0
if (zerop(x))
return cl_float(1,x);
- var uintL d = float_digits(x);
- if (e <= (1-(sintL)d)>>1) // e <= (1-d)/2 <==> e <= -ceiling((d-1)/2) ?
+ var uintC d = float_digits(x);
+ if (e <= (1-(sintC)d)>>1) // e <= (1-d)/2 <==> e <= -ceiling((d-1)/2) ?
return cl_float(1,x); // ja -> 1.0 als Ergebnis
- // Rechengenauigkeit erhöhen
+ // Rechengenauigkeit erhöhen
if (longfloatp(x)) {
DeclareType(cl_LF,x);
#if 0
if (TheLfloat(x)->len >= infty) {
var cl_LF xx = extend(x,TheLfloat(x)->len+1);
var cl_LF_cosh_sinh_t hyp = cl_coshsinh_ratseries(xx);
- return cln/float.hyp.cosh,x);
+ return cl_float(hyp.cosh,x);
} else
#endif
if (TheLfloat(x)->len >= 600) {