12 std::vector<double>
solve_pade(
const std::function<
double(
const double&)>&
fcn,
19 template <
unsigned N,
class T =
double>
class Pade
22 Pade(
const std::vector<double>& r,
24 const double& max) : min(min), max(max)
26 for(
unsigned i = 0; i <= N; ++i ) co_f[i] = r[i];
27 for(
unsigned i = 0; i < N; ++i ) co_g[i] = r[i+(N+1)];
31 Pade(
const std::function<
double(
const double&)>&
fcn,
35 m_function(
fcn), min(min),max(max)
38 for(
unsigned i = 0; i <= N; ++i ) co_f[i] = r[i];
39 for(
unsigned i = 0; i < N; ++i ) co_g[i] = r[i+(N+1)];
42 template <
typename T2>
49 for(
unsigned i = 0; i < N; ++i){
54 return (f + co_f[N]*acc)/g;
57 for(
int i = 0 ; i != N+1; ++i ) std::cout << co_f[i] << std::endl;
58 for(
int i = 0 ; i != N ; ++i ) std::cout << co_g[i] << std::endl;
61 std::function<double(
const double&)> m_function;
62 std::array<T, N+1> co_f;
63 std::array<T, N> co_g;
Pade(const std::function< double(const double &)> &fcn, const double &min, const double &max, const Strategy &strat=Strategy::linear)
T2 operator()(const T2 &s) const
Pade(const std::vector< double > &r, const double &min, const double &max)
std::vector< double > solve_pade(const std::function< double(const double &)> &fcn, const double &min, const double &max, const unsigned &N, const Strategy &strat=Strategy::linear)