26                                               std::vector<double>& bl)
 
   30   if (cl.size() != 2 * 
m_Np) {
 
   35   if (bl.size() != 
m_Np) {
 
   40   for (
int i = 0; i < 2 * 
m_Np; ++i) {
 
   44   for (
int i = 0; i < 
m_Np; ++i) {
 
   77   for (
int l = 0; l < 
m_Np; l++) {
 
   78     x2R += 
m_bl[l] / (x * x + 
m_cl[2 * l]);
 
   80   x2R = x2R * (x * x + 
m_cl[2 * m_Np - 1]);
 
   99   double rk   = sqrt(1.0 - 1.0 / (bmax * bmax));
 
  100   double emmc = 1.0 - rk * rk;
 
  109   for (
int i_prec = 0; i_prec < Nprec + 1; i_prec++) {
 
  112     for (
int i = 0; i < 20; i++) {
 
  116       if (cn < 0.0) 
goto succeeded;
 
  132   double FK = UK / (2.0 * 
m_Np + 1.0);
 
  134   for (
int l = 0; l < 2 * 
m_Np; l++) {
 
  137     m_cl[l] = sn * sn / (1.0 - sn * sn);
 
  142   for (
int l = 0; l < 
m_Np; l++) {
 
  143     d0 = d0 * (1.0 + 
m_cl[2 * l]) / (1.0 + 
m_cl[2 * l + 1]);
 
  146   for (
int l = 0; l < 
m_Np; l++) {
 
  148     for (
int i = 0; i < 
m_Np; i++) {
 
  156   double Dx = (bmax - 1.0) / Nj;
 
  161   for (
int jx = 0; jx <= Nj; jx++) {
 
  162     double x    = 1.0 + Dx * jx;
 
  163     double sgnx = 
sign(x);
 
  164     if (fabs(sgnx) > d1) d1 = sgnx;
 
  165     if (fabs(sgnx) < d2) d2 = sgnx;
 
  188   double dmax = d1 - 1.0;
 
  189   if (dmax < 1.0 - d2) dmax = 1.0 - d2;
 
  196                                           double& sn, 
double& cn, 
double& dn)
 
  208   const double epsilon = DBL_EPSILON;
 
  214   if (abs(emmc) > 1.0) {
 
  218   } 
else if (abs(emmc) < 2.0 * epsilon) {
 
  222   } 
else if (abs(emmc - 1) < 2.0 * epsilon) {
 
  233     nu[0] = sqrt(1.0 - emmc);
 
  235     while (abs(mu[n] - nu[n]) > epsilon * abs(mu[n] + nu[n]))
 
  237       mu[n + 1] = 0.5 * (mu[n] + nu[n]);
 
  238       nu[n + 1] = sqrt(mu[n] * nu[n]);
 
  246     double sin_umu = sin(uu * mu[n]);
 
  247     double cos_umu = cos(uu * mu[n]);
 
  251     if (abs(sin_umu < cos_umu)) {
 
  252       double cot = sin_umu / cos_umu;
 
  253       double cs  = mu[n] * cot;
 
  259         double r = cs * cs / mu[n + 1];
 
  261         dn  = (r + nu[n]) / (r + mu[n]);
 
  264       double sqrtm1 = sqrt(1.0 - emmc);
 
  267       cn = dn * (cos_umu > 0 ? 1 : -1) / sqrt(1 + cs * cs);
 
  268       sn = cn * cs / sqrtm1;
 
  270       double cot = cos_umu / sin_umu;
 
  271       double cs  = mu[n] * cot;
 
  277         double r = cs * cs / mu[n + 1];
 
  279         dn  = (r + nu[n]) / (r + mu[n]);
 
  282       sn = (sin_umu > 0 ? 1 : -1) / sqrt(1 + cs * cs);
 
void detailed(const char *format,...)
 
void get_sign_parameters(std::vector< double > &cl, std::vector< double > &bl)
 
void set_sign_parameters()
 
void general(const char *format,...)
 
void poly_Zolotarev(double bmax, double &UK)
 
void Jacobi_elliptic(double uu, double emmc, double &sn, double &cn, double &dn)
 
Bridge::VerboseLevel m_vl
 
static const std::string class_name
 
std::vector< double > m_bl
 
void crucial(const char *format,...)
 
std::vector< double > m_cl