31 #include "gsl/gsl_sf_pow_int.h"
36 const std::string &
name):
39 planarArcGeometry_m(1.0, 1.0),
46 maxOrderX_m(right.maxOrderX_m),
47 recursion_m(right.recursion_m),
48 planarArcGeometry_m(right.planarArcGeometry_m),
49 angle_m(right.angle_m) {
76 B[0] = Bx *
cos(theta) - Bs *
sin(theta);
77 B[2] = Bx *
sin(theta) + Bs *
cos(theta);
83 while (maxOrder >= N) {
113 for (std::size_t j = 0;
117 for (std::size_t i = 0;
123 func += (
recursion_m.at(
n).evaluatePolynomial(x / rho, i, j)
125 / gsl_sf_pow_int(rho, 2 *
n - i - 2 * j);
128 func *= gsl_sf_pow_int(-1.0,
n);
Tps< T > cos(const Tps< T > &x)
Cosine.
Tps< T > sin(const Tps< T > &x)
Sine.
PETE_TUTree< FnArcTan, typename T::PETE_Expr_t > atan(const PETE_Expr< T > &l)
constexpr double alpha
The fine structure constant, no dimension.
PartBunchBase< double, 3 > * RefPartBunch_m
std::size_t getTransMaxOrder() const
virtual void setMaxOrder(const std::size_t &maxOrder)
double getTransDeriv(const std::size_t &n, const double &x)
double getFringeDeriv(const std::size_t &n, const double &s)
std::vector< polynomial::RecursionRelation > recursion_m
virtual void transformBField(Vector_t &B, const Vector_t &R) override
virtual double getFn(const std::size_t &n, const double &x, const double &s) override
MultipoleTCurvedConstRadius(const std::string &name)
virtual double getRadius(const double &s) override
virtual void setMaxOrder(const std::size_t &maxOrder) override
~MultipoleTCurvedConstRadius()
virtual void transformCoords(Vector_t &R) override
virtual double getScaleFactor(const double &x, const double &s) override
virtual ElementBase * clone() const override
void resizeX(const std::size_t &xDerivatives)
void truncate(std::size_t highestXorder)