function series_eval(r) {
  // extra digis are commented out to eliminate arbitrary loss of precision
  const c = [
    -1.0, 2.3316439815971242 /*3363536062168*/,
    -1.8121878856393634 /*90240191647568*/,
    1.936631114492359 /*755363277457668*/,
    -2.3535512018816145 /*16821543561516*/,
    3.066858901050631 /*912893148922704*/,
    -4.175335600258177 /*13885498417746*/,
    5.858023729874774 /*148815053846119*/,
    -8.40103221752397 /*7370984161688514*/, 12.25075350131446 /*424*/,
    -18.10069701247244 /*2755*/, 27.02904479901056 /*165*/,
  ];

  const t_8 = c[8] + r * (c[9] + r * (c[10] + r * c[11]));
  const t_5 = c[5] + r * (c[6] + r * (c[7] + r * t_8));
  const t_1 = c[1] + r * (c[2] + r * (c[3] + r * (c[4] + r * t_5)));
  return c[0] + r * t_1;
}
/* series which appears for q near zero;
 * only the argument is different for the different branches
 */
series which appears for q near zero;
only the argument is different for the different branches
series which appears for q near zero ; only the argument is different for the different branches
function series_eval(r) {
  const c = [
    -1.0, 2.3316439815971242 ,
    -1.8121878856393634 ,
    1.936631114492359 ,
    -2.3535512018816145 ,
    3.066858901050631 ,
    -4.175335600258177 ,
    5.858023729874774 ,
    -8.40103221752397 , 12.25075350131446 ,
    -18.10069701247244 , 27.02904479901056 ,
  ];
  const t_8 = c[8] + r * (c[9] + r * (c[10] + r * c[11]));
  const t_5 = c[5] + r * (c[6] + r * (c[7] + r * t_8));
  const t_1 = c[1] + r * (c[2] + r * (c[3] + r * (c[4] + r * t_5)));
  return c[0] + r * t_1;
}
function series_eval ( r ) { const c = [ - 1.0 , 2.3316439815971242 , - 1.8121878856393634 , 1.936631114492359 , - 2.3535512018816145 , 3.066858901050631 , - 4.175335600258177 , 5.858023729874774 , - 8.40103221752397 , 12.25075350131446 , - 18.10069701247244 , 27.02904479901056 , ] ; const t_8 = c [ 8 ] + r * ( c [ 9 ] + r * ( c [ 10 ] + r * c [ 11 ] ) ) ; const t_5 = c [ 5 ] + r * ( c [ 6 ] + r * ( c [ 7 ] + r * t_8 ) ) ; const t_1 = c [ 1 ] + r * ( c [ 2 ] + r * ( c [ 3 ] + r * ( c [ 4 ] + r * t_5 ) ) ) ; return c [ 0 ] + r * t_1 ; }
series which appears for q near zero;
 only the argument is different for the different branches
series which appears for q near zero ; only the argument is different for the different branches
// extra digis are commented out to eliminate arbitrary loss of precision /*3363536062168*/ /*90240191647568*/ /*755363277457668*/ /*16821543561516*/ /*912893148922704*/ /*13885498417746*/ /*148815053846119*/ /*7370984161688514*/ /*424*/ /*2755*/ /*165*/