16 #define COU_POW_TOLERANCE 1e-12
52 Fp = 1 + fpp (xk) * fk + fpk * fpk;
61 F = xk - xc + fpk * fk;
66 Fp = 1 + fpp (xk) * fk + fpk * fpk;
95 Fp = 1 + tri -> Fpp (xk) * fk + fpk * fpk;
102 fk = tri -> F (xk) - yc;
103 fpk = tri -> Fp (xk);
104 F = xk - xc + fpk * fk;
106 Fp = 1 + tri -> Fpp (xk) * fk + fpk * fpk;
120 {
return (-
inv (x*x));}
125 {
return (2 *
inv (x*x*x));}
128 int main (
int argc,
char **argv) {
131 xc = atof (argv [2]),
132 yc = atof (argv [3]);
141 for (
register int i=1; i--;)
144 printf (
"xc = %.14f: xk = %.15f, slope %.15f -- %.15f ==> [%.15f = -1?]\n",
146 (yc - f (r)) / (xc - r),
147 fp (r) * (yc - f (r)) / (xc - r));
CouExpr & log(CouExpr &e)
CouNumber powNewton(CouNumber xc, CouNumber yc, unary_function f, unary_function fp, unary_function fpp)
find proper tangent point to add deepest tangent cut
CouNumber oppInvSqr(register CouNumber x)
derivative of inv (x)
int main(int argc, char *argv[])
CouNumber inv_dblprime(register CouNumber x)
inv_dblprime, second derivative of inv (x)
CouNumber inv(register CouNumber arg)
the operator itself
void fint fint fint real fint real real real real * f
CouNumber(* unary_function)(CouNumber)
unary function, used in all exprUnary
void fint fint fint real fint real real real real real real real * r
double CouNumber
main number type in Couenne
#define COU_POW_TOLERANCE
void fint fint fint real fint real * x