|
@@ -34,41 +34,13 @@
|
|
|
|
|
|
int main(int argc, char *argv[]) {
|
|
|
|
|
|
- // auto result = nmie::bessel::bh_bessel_j(20, 1);
|
|
|
- auto result = nmie::bessel::bessel_j(20, 1);
|
|
|
- printf("Calculate and compare against Wolfram Alpha\n");
|
|
|
- printf("j(0,1) = %16.18f\n", real(result[0]));
|
|
|
- printf("WA j() = 0.841470984807896506652502321630\n");
|
|
|
- printf("j(1,1) = %16.18f\n", real(result[1]));
|
|
|
- printf("WA j() = 0.301168678939756789251565714187322395890252640\n");
|
|
|
- printf("j(20,1) = %16.18f\n", real(result[20]));
|
|
|
- printf("WA j() = 7.537795722236872993957557741584960855614358030 × 10^-26\n");
|
|
|
-
|
|
|
- result = nmie::bessel::bessel_j(4, std::complex<double>(1,2));
|
|
|
- printf("Calculate and compare against Wolfram Alpha\n");
|
|
|
- printf("j(0,1+i2) = re(%16.18f)\n im(%16.18f)\n",
|
|
|
- real(result[0]),
|
|
|
- imag(result[0]));
|
|
|
- printf("WA j() = re(1.4169961192118759)\n im(-0.874391197002)\n");
|
|
|
-
|
|
|
- printf("j(1,1+i2) = re(%16.18f)\n im(%16.18f)\n",
|
|
|
- real(result[1]),
|
|
|
- imag(result[1]));
|
|
|
- printf("WA j() = re(0.74785726329830368)\n im(0.68179207555304)\n");
|
|
|
-
|
|
|
- printf("j(4,1+i2) = re(%16.18f)\n im(%16.18f)\n",
|
|
|
- real(result[4]),
|
|
|
- imag(result[4]));
|
|
|
- printf("WA j() = re(-0.01352410550046)\n im(-0.027169663050653)\n");
|
|
|
-
|
|
|
-
|
|
|
int n = 10;
|
|
|
std::complex<double> z(1.0, 2.0);
|
|
|
int nm;
|
|
|
std::vector< std::complex<double> > csj, cdj, csy, cdy;
|
|
|
nmie::bessel::csphjy (n, z, nm, csj, cdj, csy, cdy );
|
|
|
|
|
|
- result = csj;
|
|
|
+ auto result = csj;
|
|
|
printf("===========Calculate and compare against Wolfram Alpha\n");
|
|
|
printf("j(0,1+i2) = re(%16.18f)\n im(%16.18f)\n",
|
|
|
real(result[0]),
|
|
@@ -86,5 +58,20 @@ int main(int argc, char *argv[]) {
|
|
|
printf("WA j() = re(-0.01352410550046)\n im(-0.027169663050653)\n");
|
|
|
|
|
|
|
|
|
+ n = 20;
|
|
|
+ std::complex<double> z1(1.0, 0.0);
|
|
|
+ nmie::bessel::csphjy (n, z1, nm, csj, cdj, csy, cdy );
|
|
|
+ result = csj;
|
|
|
+
|
|
|
+ printf("$$$$ REAL $$$$$$ Calculate and compare against Wolfram Alpha\n");
|
|
|
+ printf("j(0,1) = %16.18f\n", real(result[0]));
|
|
|
+ printf("WA j() = 0.841470984807896506652502321630\n");
|
|
|
+ printf("j(1,1) = %16.18f\n", real(result[1]));
|
|
|
+ printf("WA j() = 0.301168678939756789251565714187322395890252640\n");
|
|
|
+ printf("j(1,1) = %.14g\n", real(result[10]));
|
|
|
+ printf("WA j() = 7.116552640047313023966191737248811458533809572 × 10^-11\n");
|
|
|
+ printf("j(20,1) = %.14g\n", real(result[20]));
|
|
|
+ printf("WA j() = 7.537795722236872993957557741584960855614358030 × 10^-26\n");
|
|
|
+
|
|
|
}
|
|
|
|