17 #include <corsika/framework/utility/QuadraticSolver.hpp> 20 #include <boost/multiprecision/cpp_bin_float.hpp> 37 std::vector<double>
solveP3(
long double a,
long double b,
long double c,
38 long double d,
double const epsilon = 1e-12);
45 long double p,
long double q,
long double const disc,
double const epsilon = 1e-12);
47 std::vector<double> solve_cubic_depressed_real(
long double p,
long double q,
48 double const epsilon = 1e-12);
56 long double c,
long double d,
57 double const epsilon = 1e-12);
86 std::vector<double>
solve_cubic_real(
long double a,
long double b,
long double c,
87 long double d,
double const epsilon = 1e-12);
93 #include <corsika/detail/framework/utility/CubicSolver.inl> T cubic_function_d2fd2x(T x, T a, T b)
std::vector< double > solveP3(long double a, long double b, long double c, long double d, double const epsilon=1e-12)
Solve a x^3 + b x^2 + c x + d = 0.
T cubic_function_dfdx(T x, T a, T b, T c)
CORSIKA8 logging utilities.
std::vector< double > solve_cubic_real(long double a, long double b, long double c, long double d, double const epsilon=1e-12)
Iterative approach to solve: a x^3 + b x^2 + c x + d = 0.
`, since they are used everywhere as integral part of the framework.
std::vector< double > solve_cubic_depressed_disciminant_real(long double p, long double q, long double const disc, double const epsilon=1e-12)
Solve depressed cubic: x^3 + p x + q = 0.
T cubic_function(T x, T a, T b, T c, T d)
Cubic function.
std::vector< double > solve_cubic_real_analytic(long double a, long double b, long double c, long double d, double const epsilon=1e-12)
Solve a x^3 + b x^2 + c x + d = 0.