38 if (std::abs(x1.imag()) < 1e-9 && x1.real() > 0.0)
41 std::complex<double>
C2 =
C1 * std::complex<double>(-0.5, -0.5 *
sqrt(3));
43 if (std::abs(x2.imag()) < 1e-9 && x2.real() > 0.0)
46 std::complex<double> C3 =
C1 * std::complex<double>(-0.5, 0.5 *
sqrt(3));
48 if (std::abs(x3.imag()) < 1e-9 && x3.real() > 0.0)
67 for (i = 1; i < size; ++ i) {
71 if (oldValue * value < 0.0) {
100 int iter = 0, max_iter = 100;
101 const gsl_root_fsolver_type *T;
102 gsl_root_fsolver *solver;
111 T = gsl_root_fsolver_brent;
112 solver = gsl_root_fsolver_alloc (T);
113 gsl_root_fsolver_set (solver, &F, x_lo, x_hi);
118 status = gsl_root_fsolver_iterate (solver);
119 root = gsl_root_fsolver_root (solver);
120 x_lo = gsl_root_fsolver_x_lower (solver);
121 x_hi = gsl_root_fsolver_x_upper (solver);
122 status = gsl_root_test_interval (x_lo, x_hi,
125 while (status == GSL_CONTINUE && iter < max_iter &&
computeValue(root) > tol);
127 gsl_root_fsolver_free (solver);