19namespace layer1_foundations {
20namespace ring_theory {
54 for (i = 0; i <=
degree; i++) {
70 int f_v = (verbose_level >= 1);
73 double eps = 0.0000001;
77 cout <<
"polynomial_double::root_finder error, ABS(coeff[degree]) < eps" << endl;
86 if (b * b - 4 * a * c < 0) {
87 cout <<
"polynomial_double::root_finder error discriminant is negative" << endl;
90 d = (-b + sqrt(b * b - 4 * a * c)) / (2 * a);
117 cout <<
"polynomial_double::root_finder l=" << l <<
" r=" << r << endl;
118 cout <<
"value at l = " << vl << endl;
119 cout <<
"value at r = " << vr << endl;
123 while (
ABS(vm) > eps) {
125 cout <<
"polynomial_double::root_finder l=" << l <<
" r=" << r << endl;
126 cout <<
"value at l = " << vl << endl;
127 cout <<
"value at r = " << vr << endl;
128 cout <<
"r - l = " << r - l << endl;
129 cout <<
"m = " << m << endl;
130 cout <<
"vm = " << vm << endl;
133 cout <<
"m=" << m <<
" value=" << vm <<
" sign=" << N.
sign_of(vm) << endl;
147 cout <<
"polynomial_double::root_finder hit on a root by chance" << endl;
152 cout <<
"polynomial_double::root_finder problem" << endl;
153 cout <<
"polynomial_double::root_finder l=" << l <<
" m=" << m <<
" r=" << r << endl;
154 cout <<
"value at l = " << vl << endl;
155 cout <<
"value at r = " << vr << endl;
156 cout <<
"value at m = " << vm << endl;
164 cout <<
"polynomial_double::root_finder l=" << l <<
" r=" << r << endl;
165 cout <<
"value at l = " << vl << endl;
166 cout <<
"value at r = " << vr << endl;
178 for (i =
degree - 1; i >= 0; i--) {
179 a = a * t +
coeff[i];
numerical functions, mostly concerned with double
void init(int alloc_length)
double root_finder(int verbose_level)
void print(std::ostream &ost)
double evaluate_at(double t)
the orbiter library for the classification of combinatorial objects