36 std::vector<std::vector<std::vector<int> > >
Tanh::_tdi;
38 Tanh::Tanh(
double x0,
double lambda,
int max_index) : _x0(x0), _lambda(lambda) {
51 for (
size_t i = 0; i <
_tdi[n].size(); i++)
52 t += 1. / lam_n *
static_cast<double>(
_tdi[n][i][0])
62 for (
size_t i = 0; i <
_tdi[n].size(); i++)
63 t += 1. / lam_n *
static_cast<double>(
_tdi[n][i][0])
74 if (
_tdi.size() == 0) {
75 _tdi.push_back(std::vector<std::vector<int> >(1, std::vector<int>(2)));
79 for (
size_t i =
_tdi.size(); i < n + 1; ++i) {
80 _tdi.push_back(std::vector<std::vector<int> >());
81 for (
size_t j = 0; j <
_tdi[i - 1].size(); ++j) {
82 int value =
_tdi[i - 1][j][1];
84 std::vector<int> new_vec(
_tdi[i - 1][j]);
87 _tdi[i].push_back(new_vec);
88 std::vector<int> new_vec2(
_tdi[i - 1][j]);
89 new_vec2[0] *= -value;
91 _tdi[i].push_back(new_vec2);
109 out <<
"Tanh model with centre length: " <<
_x0 <<
" end length: " <<
_lambda;
double gsl_sf_pow_int(double x, int n)
Integer power .
virtual void setMaximumDerivative(size_t n)
static void setTanhDiffIndices(size_t n)
double function(double x, int n) const
double getNegTanh(double x, int n) const
std::ostream & print(std::ostream &out) const
static std::vector< std::vector< int > > getTanhDiffIndices(size_t n)
void rescale(double scaleFactor)
static std::vector< std::vector< std::vector< int > > > _tdi
double getTanh(double x, int n) const
std::vector< std::vector< int > > CompactVector(std::vector< std::vector< int > > vec)