9#ifndef _USE_MATH_DEFINES
10#define _USE_MATH_DEFINES
13#include <ocl/detail/math/config.hpp>
14#include <ocl/equiv_fwd.hpp>
15#include <ocl/option_fwd.hpp>
16#include <ocl/scientific_fwd.hpp>
20#define Im(x) std::complex(x)
21#define Re(x) ((::ocl::scientific::real_type)x)
22#define Q(x) ((std::int32_t)x)
23#define P(x) ((::ocl::scientific::real_type)x)
28#define pi (3.14159265358979323846)
29#define euler_num (2.71828182845904523536)
30#define euler_masch (0.57721566490153286060651209008240243104215933593992)
31#define apery (zeta_apery)
32#define golden_ratio (((1 + std::sqrt(5)) / 2))
33#define sqrt_two (std::sqrt(2))
34#define gelfond_schneider (std::pow(2, sqrt_two))
35#define catalan (0.9159655941772190150)
37namespace ocl::scientific::solver
40 using variable_count_type = int;
42 template <variable_count_type functions_cnt,
43 variable_count_type variable_cnt>
49 using number_type = real_type;
51 number_type operator()(
const number_type& left,
const std::vector<number_type>& right)
57 template <variable_count_type variable_cnt>
60 template <variable_count_type variable_cnt>
66 using number_type = real_type;
68 number_type operator()(
const number_type& left,
const std::vector<number_type>& right)
74 template <variable_count_type variable_cnt>
80 using number_type = real_type;
82 number_type operator()(
const number_type& left,
const std::vector<number_type>& right)
93 using number_type = real_type;
96 number_type
operator()(
const number_type& left,
const std::vector<number_type>& right)
107 using number_type = real_type;
110 number_type
operator()(
const number_type& left,
const std::vector<number_type>& right)
120 template <
class Friend>
126 using pointer = Friend;
139 template <
class Friend>
144 template <
class Friend>
149 template <
class Friend>
155 template <
class Solver,
class Friend>
159 static_assert(Solver::is_formalized,
"The Solver you want to base this chain on is not solved. Use ::sorry to make this error go away.");
166 template <
class Friend>
169 template <
class Solver,
class Friend>
Solve a mathematical conjecture using a pre-solved solver first.
Definition math_fwd.hpp:157
Definition math_fwd.hpp:146
Definition math_fwd.hpp:151
Definition math_fwd.hpp:89
number_type operator()(const number_type &left, const std::vector< number_type > &right)
basic equality solver for two parameters.
Definition math_fwd.hpp:96
Provides a set of solvers for induction, construction,.
Definition math_fwd.hpp:141
Definition math_fwd.hpp:103
number_type operator()(const number_type &left, const std::vector< number_type > &right)
basic inequality solver for two parameters.
Definition math_fwd.hpp:110
Definition math_fwd.hpp:122
static const bool is_formalized
This guarantees that the solver is indeed solved.
Definition math_fwd.hpp:132
Definition math_fwd.hpp:62
Definition math_fwd.hpp:76
Definition math_fwd.hpp:45