// { dg-do run { target c++11 } }
// { dg-options "-D__STDCPP_WANT_MATH_SPEC_FUNCS__ -ffp-contract=off" }
-// Copyright (C) 2016-2017 Free Software Foundation, Inc.
+// Copyright (C) 2016-2018 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// Test data for l=1, m=1.
// max(|f - f_GSL|): 2.2204460492503131e-16 at index 12
// max(|f - f_GSL| / |f_GSL|): 2.4227052612512390e-16
-// mean(f - f_GSL): 1.0573552615477681e-17
+// mean(f - f_GSL): -1.0573552615477681e-17
// variance(f - f_GSL): 5.8695007828944331e-36
// stddev(f - f_GSL): 2.4227052612512388e-18
const testcase_assoc_legendre<double>
data003[21] =
{
- { -0.0000000000000000, 1, 1,
+ { 0.0000000000000000, 1, 1,
-1.0000000000000000, 0.0 },
- { -0.43588989435406728, 1, 1,
+ { 0.43588989435406728, 1, 1,
-0.90000000000000002, 0.0 },
- { -0.59999999999999987, 1, 1,
+ { 0.59999999999999987, 1, 1,
-0.80000000000000004, 0.0 },
- { -0.71414284285428509, 1, 1,
+ { 0.71414284285428509, 1, 1,
-0.69999999999999996, 0.0 },
- { -0.80000000000000004, 1, 1,
+ { 0.80000000000000004, 1, 1,
-0.59999999999999998, 0.0 },
- { -0.86602540378443860, 1, 1,
+ { 0.86602540378443860, 1, 1,
-0.50000000000000000, 0.0 },
- { -0.91651513899116799, 1, 1,
+ { 0.91651513899116799, 1, 1,
-0.39999999999999991, 0.0 },
- { -0.95393920141694555, 1, 1,
+ { 0.95393920141694555, 1, 1,
-0.29999999999999993, 0.0 },
- { -0.97979589711327120, 1, 1,
+ { 0.97979589711327120, 1, 1,
-0.19999999999999996, 0.0 },
- { -0.99498743710661997, 1, 1,
+ { 0.99498743710661997, 1, 1,
-0.099999999999999978, 0.0 },
- { -1.0000000000000000, 1, 1,
+ { 1.0000000000000000, 1, 1,
0.0000000000000000, 0.0 },
- { -0.99498743710661997, 1, 1,
+ { 0.99498743710661997, 1, 1,
0.10000000000000009, 0.0 },
- { -0.97979589711327120, 1, 1,
+ { 0.97979589711327120, 1, 1,
0.20000000000000018, 0.0 },
- { -0.95393920141694577, 1, 1,
+ { 0.95393920141694577, 1, 1,
0.30000000000000004, 0.0 },
- { -0.91651513899116788, 1, 1,
+ { 0.91651513899116788, 1, 1,
0.40000000000000013, 0.0 },
- { -0.86602540378443860, 1, 1,
+ { 0.86602540378443860, 1, 1,
0.50000000000000000, 0.0 },
- { -0.79999999999999993, 1, 1,
+ { 0.79999999999999993, 1, 1,
0.60000000000000009, 0.0 },
- { -0.71414284285428475, 1, 1,
+ { 0.71414284285428475, 1, 1,
0.70000000000000018, 0.0 },
- { -0.59999999999999987, 1, 1,
+ { 0.59999999999999987, 1, 1,
0.80000000000000004, 0.0 },
- { -0.43588989435406711, 1, 1,
+ { 0.43588989435406711, 1, 1,
0.90000000000000013, 0.0 },
- { -0.0000000000000000, 1, 1,
+ { 0.0000000000000000, 1, 1,
1.0000000000000000, 0.0 },
};
const double toler003 = 2.5000000000000020e-13;
// Test data for l=2, m=1.
// max(|f - f_GSL|): 2.2204460492503131e-16 at index 3
// max(|f - f_GSL| / |f_GSL|): 3.7770554319736585e-16
-// mean(f - f_GSL): -1.0573552615477681e-17
+// mean(f - f_GSL): 1.0573552615477681e-17
// variance(f - f_GSL): 5.8695007828944331e-36
// stddev(f - f_GSL): 2.4227052612512388e-18
const testcase_assoc_legendre<double>
data005[21] =
{
- { 0.0000000000000000, 2, 1,
+ { -0.0000000000000000, 2, 1,
-1.0000000000000000, 0.0 },
- { 1.1769027147559816, 2, 1,
+ { -1.1769027147559816, 2, 1,
-0.90000000000000002, 0.0 },
- { 1.4399999999999999, 2, 1,
+ { -1.4399999999999999, 2, 1,
-0.80000000000000004, 0.0 },
- { 1.4996999699939983, 2, 1,
+ { -1.4996999699939983, 2, 1,
-0.69999999999999996, 0.0 },
- { 1.4399999999999999, 2, 1,
+ { -1.4399999999999999, 2, 1,
-0.59999999999999998, 0.0 },
- { 1.2990381056766580, 2, 1,
+ { -1.2990381056766580, 2, 1,
-0.50000000000000000, 0.0 },
- { 1.0998181667894014, 2, 1,
+ { -1.0998181667894014, 2, 1,
-0.39999999999999991, 0.0 },
- { 0.85854528127525076, 2, 1,
+ { -0.85854528127525076, 2, 1,
-0.29999999999999993, 0.0 },
- { 0.58787753826796263, 2, 1,
+ { -0.58787753826796263, 2, 1,
-0.19999999999999996, 0.0 },
- { 0.29849623113198592, 2, 1,
+ { -0.29849623113198592, 2, 1,
-0.099999999999999978, 0.0 },
- { -0.0000000000000000, 2, 1,
+ { 0.0000000000000000, 2, 1,
0.0000000000000000, 0.0 },
- { -0.29849623113198626, 2, 1,
+ { 0.29849623113198626, 2, 1,
0.10000000000000009, 0.0 },
- { -0.58787753826796330, 2, 1,
+ { 0.58787753826796330, 2, 1,
0.20000000000000018, 0.0 },
- { -0.85854528127525132, 2, 1,
+ { 0.85854528127525132, 2, 1,
0.30000000000000004, 0.0 },
- { -1.0998181667894018, 2, 1,
+ { 1.0998181667894018, 2, 1,
0.40000000000000013, 0.0 },
- { -1.2990381056766580, 2, 1,
+ { 1.2990381056766580, 2, 1,
0.50000000000000000, 0.0 },
- { -1.4400000000000002, 2, 1,
+ { 1.4400000000000002, 2, 1,
0.60000000000000009, 0.0 },
- { -1.4996999699939983, 2, 1,
+ { 1.4996999699939983, 2, 1,
0.70000000000000018, 0.0 },
- { -1.4399999999999999, 2, 1,
+ { 1.4399999999999999, 2, 1,
0.80000000000000004, 0.0 },
- { -1.1769027147559812, 2, 1,
+ { 1.1769027147559812, 2, 1,
0.90000000000000013, 0.0 },
- { -0.0000000000000000, 2, 1,
+ { 0.0000000000000000, 2, 1,
1.0000000000000000, 0.0 },
};
const double toler005 = 2.5000000000000020e-13;
// Test data for l=5, m=1.
// max(|f - f_GSL|): 6.6613381477509392e-16 at index 14
// max(|f - f_GSL| / |f_GSL|): 5.5186908001167120e-16
-// mean(f - f_GSL): -1.0573552615477681e-17
+// mean(f - f_GSL): 1.0573552615477681e-17
// variance(f - f_GSL): 5.8695007828944331e-36
// stddev(f - f_GSL): 2.4227052612512388e-18
const testcase_assoc_legendre<double>
data008[21] =
{
- { 0.0000000000000000, 5, 1,
+ { -0.0000000000000000, 5, 1,
-1.0000000000000000, 0.0 },
- { -2.8099369608350981, 5, 1,
+ { 2.8099369608350981, 5, 1,
-0.90000000000000002, 0.0 },
- { -0.72180000000000089, 5, 1,
+ { 0.72180000000000089, 5, 1,
-0.80000000000000004, 0.0 },
- { 1.0951826834447254, 5, 1,
+ { -1.0951826834447254, 5, 1,
-0.69999999999999996, 0.0 },
- { 1.9775999999999998, 5, 1,
+ { -1.9775999999999998, 5, 1,
-0.59999999999999998, 0.0 },
- { 1.9282596881137892, 5, 1,
+ { -1.9282596881137892, 5, 1,
-0.50000000000000000, 0.0 },
- { 1.2070504380513671, 5, 1,
+ { -1.2070504380513671, 5, 1,
-0.39999999999999991, 0.0 },
- { 0.16079837663884300, 5, 1,
+ { -0.16079837663884300, 5, 1,
-0.29999999999999993, 0.0 },
- { -0.87005875663658538, 5, 1,
+ { 0.87005875663658538, 5, 1,
-0.19999999999999996, 0.0 },
- { -1.6083350053680323, 5, 1,
+ { 1.6083350053680323, 5, 1,
-0.099999999999999978, 0.0 },
- { -1.8750000000000000, 5, 1,
+ { 1.8750000000000000, 5, 1,
0.0000000000000000, 0.0 },
- { -1.6083350053680314, 5, 1,
+ { 1.6083350053680314, 5, 1,
0.10000000000000009, 0.0 },
- { -0.87005875663658327, 5, 1,
+ { 0.87005875663658327, 5, 1,
0.20000000000000018, 0.0 },
- { 0.16079837663884422, 5, 1,
+ { -0.16079837663884422, 5, 1,
0.30000000000000004, 0.0 },
- { 1.2070504380513694, 5, 1,
+ { -1.2070504380513694, 5, 1,
0.40000000000000013, 0.0 },
- { 1.9282596881137892, 5, 1,
+ { -1.9282596881137892, 5, 1,
0.50000000000000000, 0.0 },
- { 1.9775999999999998, 5, 1,
+ { -1.9775999999999998, 5, 1,
0.60000000000000009, 0.0 },
- { 1.0951826834447216, 5, 1,
+ { -1.0951826834447216, 5, 1,
0.70000000000000018, 0.0 },
- { -0.72180000000000089, 5, 1,
+ { 0.72180000000000089, 5, 1,
0.80000000000000004, 0.0 },
- { -2.8099369608350999, 5, 1,
+ { 2.8099369608350999, 5, 1,
0.90000000000000013, 0.0 },
- { 0.0000000000000000, 5, 1,
+ { -0.0000000000000000, 5, 1,
1.0000000000000000, 0.0 },
};
const double toler008 = 2.5000000000000020e-13;
// Test data for l=5, m=5.
// max(|f - f_GSL|): 1.0231815394945443e-12 at index 12
// max(|f - f_GSL| / |f_GSL|): 1.1990652164995755e-15
-// mean(f - f_GSL): 3.1128538899966297e-14
+// mean(f - f_GSL): -3.1128538899966297e-14
// variance(f - f_GSL): 5.0871761537452526e-29
// stddev(f - f_GSL): 7.1324442891236469e-15
const testcase_assoc_legendre<double>
data010[21] =
{
- { -0.0000000000000000, 5, 5,
+ { 0.0000000000000000, 5, 5,
-1.0000000000000000, 0.0 },
- { -14.870165800941818, 5, 5,
+ { 14.870165800941818, 5, 5,
-0.90000000000000002, 0.0 },
- { -73.483199999999925, 5, 5,
+ { 73.483199999999925, 5, 5,
-0.80000000000000004, 0.0 },
- { -175.53238298794764, 5, 5,
+ { 175.53238298794764, 5, 5,
-0.69999999999999996, 0.0 },
- { -309.65760000000006, 5, 5,
+ { 309.65760000000006, 5, 5,
-0.59999999999999998, 0.0 },
- { -460.34662869916559, 5, 5,
+ { 460.34662869916559, 5, 5,
-0.50000000000000000, 0.0 },
- { -611.12496255819883, 5, 5,
+ { 611.12496255819883, 5, 5,
-0.39999999999999991, 0.0 },
- { -746.50941479523703, 5, 5,
+ { 746.50941479523703, 5, 5,
-0.29999999999999993, 0.0 },
- { -853.31600434671316, 5, 5,
+ { 853.31600434671316, 5, 5,
-0.19999999999999996, 0.0 },
- { -921.55189181724734, 5, 5,
+ { 921.55189181724734, 5, 5,
-0.099999999999999978, 0.0 },
- { -945.00000000000000, 5, 5,
+ { 945.00000000000000, 5, 5,
0.0000000000000000, 0.0 },
- { -921.55189181724734, 5, 5,
+ { 921.55189181724734, 5, 5,
0.10000000000000009, 0.0 },
- { -853.31600434671316, 5, 5,
+ { 853.31600434671316, 5, 5,
0.20000000000000018, 0.0 },
- { -746.50941479523760, 5, 5,
+ { 746.50941479523760, 5, 5,
0.30000000000000004, 0.0 },
- { -611.12496255819838, 5, 5,
+ { 611.12496255819838, 5, 5,
0.40000000000000013, 0.0 },
- { -460.34662869916559, 5, 5,
+ { 460.34662869916559, 5, 5,
0.50000000000000000, 0.0 },
- { -309.65759999999989, 5, 5,
+ { 309.65759999999989, 5, 5,
0.60000000000000009, 0.0 },
- { -175.53238298794724, 5, 5,
+ { 175.53238298794724, 5, 5,
0.70000000000000018, 0.0 },
- { -73.483199999999925, 5, 5,
+ { 73.483199999999925, 5, 5,
0.80000000000000004, 0.0 },
- { -14.870165800941789, 5, 5,
+ { 14.870165800941789, 5, 5,
0.90000000000000013, 0.0 },
- { -0.0000000000000000, 5, 5,
+ { 0.0000000000000000, 5, 5,
1.0000000000000000, 0.0 },
};
const double toler010 = 2.5000000000000020e-13;
// Test data for l=10, m=1.
// max(|f - f_GSL|): 1.3322676295501878e-15 at index 14
// max(|f - f_GSL| / |f_GSL|): 5.3672431731635395e-16
-// mean(f - f_GSL): 6.3441315692866085e-17
+// mean(f - f_GSL): -6.3441315692866085e-17
// variance(f - f_GSL): 2.1130202818419960e-34
// stddev(f - f_GSL): 1.4536231567507432e-17
const testcase_assoc_legendre<double>
data012[21] =
{
- { -0.0000000000000000, 10, 1,
+ { 0.0000000000000000, 10, 1,
-1.0000000000000000, 0.0 },
- { -3.0438748781479039, 10, 1,
+ { 3.0438748781479039, 10, 1,
-0.90000000000000002, 0.0 },
- { -0.87614260800000254, 10, 1,
+ { 0.87614260800000254, 10, 1,
-0.80000000000000004, 0.0 },
- { 2.9685359952934527, 10, 1,
+ { -2.9685359952934527, 10, 1,
-0.69999999999999996, 0.0 },
- { 1.2511825919999997, 10, 1,
+ { -1.2511825919999997, 10, 1,
-0.59999999999999998, 0.0 },
- { -2.0066877394361260, 10, 1,
+ { 2.0066877394361260, 10, 1,
-0.50000000000000000, 0.0 },
- { -2.4822196173476647, 10, 1,
+ { 2.4822196173476647, 10, 1,
-0.39999999999999991, 0.0 },
- { -0.12309508907433593, 10, 1,
+ { 0.12309508907433593, 10, 1,
-0.29999999999999993, 0.0 },
- { 2.2468221751958413, 10, 1,
+ { -2.2468221751958413, 10, 1,
-0.19999999999999996, 0.0 },
- { 2.2472659777983512, 10, 1,
+ { -2.2472659777983512, 10, 1,
-0.099999999999999978, 0.0 },
- { -0.0000000000000000, 10, 1,
+ { 0.0000000000000000, 10, 1,
0.0000000000000000, 0.0 },
- { -2.2472659777983535, 10, 1,
+ { 2.2472659777983535, 10, 1,
0.10000000000000009, 0.0 },
- { -2.2468221751958377, 10, 1,
+ { 2.2468221751958377, 10, 1,
0.20000000000000018, 0.0 },
- { 0.12309508907433910, 10, 1,
+ { -0.12309508907433910, 10, 1,
0.30000000000000004, 0.0 },
- { 2.4822196173476669, 10, 1,
+ { -2.4822196173476669, 10, 1,
0.40000000000000013, 0.0 },
- { 2.0066877394361260, 10, 1,
+ { -2.0066877394361260, 10, 1,
0.50000000000000000, 0.0 },
- { -1.2511825920000037, 10, 1,
+ { 1.2511825920000037, 10, 1,
0.60000000000000009, 0.0 },
- { -2.9685359952934505, 10, 1,
+ { 2.9685359952934505, 10, 1,
0.70000000000000018, 0.0 },
- { 0.87614260800000254, 10, 1,
+ { -0.87614260800000254, 10, 1,
0.80000000000000004, 0.0 },
- { 3.0438748781478981, 10, 1,
+ { -3.0438748781478981, 10, 1,
0.90000000000000013, 0.0 },
- { 0.0000000000000000, 10, 1,
+ { -0.0000000000000000, 10, 1,
1.0000000000000000, 0.0 },
};
const double toler012 = 2.5000000000000020e-13;
// Test data for l=10, m=5.
// max(|f - f_GSL|): 2.9103830456733704e-11 at index 12
// max(|f - f_GSL| / |f_GSL|): 1.4825078449301893e-15
-// mean(f - f_GSL): 2.4253192047278085e-12
+// mean(f - f_GSL): -2.4253192047278085e-12
// variance(f - f_GSL): 3.0881409535313035e-25
// stddev(f - f_GSL): 5.5571044200476413e-13
const testcase_assoc_legendre<double>
data014[21] =
{
- { 0.0000000000000000, 10, 5,
+ { -0.0000000000000000, 10, 5,
-1.0000000000000000, 0.0 },
- { 21343.618518164680, 10, 5,
+ { -21343.618518164680, 10, 5,
-0.90000000000000002, 0.0 },
- { 40457.016407807983, 10, 5,
+ { -40457.016407807983, 10, 5,
-0.80000000000000004, 0.0 },
- { 20321.279317331315, 10, 5,
+ { -20321.279317331315, 10, 5,
-0.69999999999999996, 0.0 },
- { -14410.820616192004, 10, 5,
+ { 14410.820616192004, 10, 5,
-0.59999999999999998, 0.0 },
- { -30086.169706116176, 10, 5,
+ { 30086.169706116176, 10, 5,
-0.50000000000000000, 0.0 },
- { -17177.549337582834, 10, 5,
+ { 17177.549337582834, 10, 5,
-0.39999999999999991, 0.0 },
- { 9272.5119495412546, 10, 5,
+ { -9272.5119495412546, 10, 5,
-0.29999999999999993, 0.0 },
- { 26591.511184414714, 10, 5,
+ { -26591.511184414714, 10, 5,
-0.19999999999999996, 0.0 },
- { 21961.951238504211, 10, 5,
+ { -21961.951238504211, 10, 5,
-0.099999999999999978, 0.0 },
- { -0.0000000000000000, 10, 5,
+ { 0.0000000000000000, 10, 5,
0.0000000000000000, 0.0 },
- { -21961.951238504229, 10, 5,
+ { 21961.951238504229, 10, 5,
0.10000000000000009, 0.0 },
- { -26591.511184414703, 10, 5,
+ { 26591.511184414703, 10, 5,
0.20000000000000018, 0.0 },
- { -9272.5119495412364, 10, 5,
+ { 9272.5119495412364, 10, 5,
0.30000000000000004, 0.0 },
- { 17177.549337582877, 10, 5,
+ { -17177.549337582877, 10, 5,
0.40000000000000013, 0.0 },
- { 30086.169706116176, 10, 5,
+ { -30086.169706116176, 10, 5,
0.50000000000000000, 0.0 },
- { 14410.820616191972, 10, 5,
+ { -14410.820616191972, 10, 5,
0.60000000000000009, 0.0 },
- { -20321.279317331391, 10, 5,
+ { 20321.279317331391, 10, 5,
0.70000000000000018, 0.0 },
- { -40457.016407807983, 10, 5,
+ { 40457.016407807983, 10, 5,
0.80000000000000004, 0.0 },
- { -21343.618518164636, 10, 5,
+ { 21343.618518164636, 10, 5,
0.90000000000000013, 0.0 },
- { 0.0000000000000000, 10, 5,
+ { -0.0000000000000000, 10, 5,
1.0000000000000000, 0.0 },
};
const double toler014 = 2.5000000000000020e-13;
// Test data for l=20, m=1.
// max(|f - f_GSL|): 1.3322676295501878e-15 at index 12
// max(|f - f_GSL| / |f_GSL|): 1.0752784502271902e-15
-// mean(f - f_GSL): 1.4274296030894871e-16
+// mean(f - f_GSL): -1.4274296030894871e-16
// variance(f - f_GSL): 1.0697165176825104e-33
// stddev(f - f_GSL): 3.2706521026891724e-17
const testcase_assoc_legendre<double>
data017[21] =
{
- { 0.0000000000000000, 20, 1,
+ { -0.0000000000000000, 20, 1,
-1.0000000000000000, 0.0 },
- { 4.3838334818220499, 20, 1,
+ { -4.3838334818220499, 20, 1,
-0.90000000000000002, 0.0 },
- { -0.63138296146340844, 20, 1,
+ { 0.63138296146340844, 20, 1,
-0.80000000000000004, 0.0 },
- { 0.72274871413391395, 20, 1,
+ { -0.72274871413391395, 20, 1,
-0.69999999999999996, 0.0 },
- { -2.3203528743824910, 20, 1,
+ { 2.3203528743824910, 20, 1,
-0.59999999999999998, 0.0 },
- { 3.7399919228791405, 20, 1,
+ { -3.7399919228791405, 20, 1,
-0.50000000000000000, 0.0 },
- { -3.1692202279270085, 20, 1,
+ { 3.1692202279270085, 20, 1,
-0.39999999999999991, 0.0 },
- { 0.15804468835345031, 20, 1,
+ { -0.15804468835345031, 20, 1,
-0.29999999999999993, 0.0 },
- { 3.0366182393271171, 20, 1,
+ { -3.0366182393271171, 20, 1,
-0.19999999999999996, 0.0 },
- { -3.2115523815580209, 20, 1,
+ { 3.2115523815580209, 20, 1,
-0.099999999999999978, 0.0 },
- { 0.0000000000000000, 20, 1,
+ { -0.0000000000000000, 20, 1,
0.0000000000000000, 0.0 },
- { 3.2115523815580169, 20, 1,
+ { -3.2115523815580169, 20, 1,
0.10000000000000009, 0.0 },
- { -3.0366182393271259, 20, 1,
+ { 3.0366182393271259, 20, 1,
0.20000000000000018, 0.0 },
- { -0.15804468835344135, 20, 1,
+ { 0.15804468835344135, 20, 1,
0.30000000000000004, 0.0 },
- { 3.1692202279269970, 20, 1,
+ { -3.1692202279269970, 20, 1,
0.40000000000000013, 0.0 },
- { -3.7399919228791405, 20, 1,
+ { 3.7399919228791405, 20, 1,
0.50000000000000000, 0.0 },
- { 2.3203528743824995, 20, 1,
+ { -2.3203528743824995, 20, 1,
0.60000000000000009, 0.0 },
- { -0.72274871413393793, 20, 1,
+ { 0.72274871413393793, 20, 1,
0.70000000000000018, 0.0 },
- { 0.63138296146340844, 20, 1,
+ { -0.63138296146340844, 20, 1,
0.80000000000000004, 0.0 },
- { -4.3838334818220686, 20, 1,
+ { 4.3838334818220686, 20, 1,
0.90000000000000013, 0.0 },
- { 0.0000000000000000, 20, 1,
+ { -0.0000000000000000, 20, 1,
1.0000000000000000, 0.0 },
};
const double toler017 = 2.5000000000000020e-13;
// Test data for l=20, m=5.
// max(|f - f_GSL|): 1.2805685400962830e-09 at index 14
// max(|f - f_GSL| / |f_GSL|): 2.0861530799041223e-15
-// mean(f - f_GSL): 1.1641532182693481e-10
+// mean(f - f_GSL): -1.1641532182693481e-10
// variance(f - f_GSL): 7.1150767569361226e-22
// stddev(f - f_GSL): 2.6674101216228678e-11
const testcase_assoc_legendre<double>
data019[21] =
{
- { -0.0000000000000000, 20, 5,
+ { 0.0000000000000000, 20, 5,
-1.0000000000000000, 0.0 },
- { -315702.32715134218, 20, 5,
+ { 315702.32715134218, 20, 5,
-0.90000000000000002, 0.0 },
- { 503060.91484852589, 20, 5,
+ { -503060.91484852589, 20, 5,
-0.80000000000000004, 0.0 },
- { -298127.28360361955, 20, 5,
+ { 298127.28360361955, 20, 5,
-0.69999999999999996, 0.0 },
- { -114444.61447464029, 20, 5,
+ { 114444.61447464029, 20, 5,
-0.59999999999999998, 0.0 },
- { 543428.40914592845, 20, 5,
+ { -543428.40914592845, 20, 5,
-0.50000000000000000, 0.0 },
- { -613842.07728185481, 20, 5,
+ { 613842.07728185481, 20, 5,
-0.39999999999999991, 0.0 },
- { 143765.42411271061, 20, 5,
+ { -143765.42411271061, 20, 5,
-0.29999999999999993, 0.0 },
- { 472600.45321372285, 20, 5,
+ { -472600.45321372285, 20, 5,
-0.19999999999999996, 0.0 },
- { -563861.76771496492, 20, 5,
+ { 563861.76771496492, 20, 5,
-0.099999999999999978, 0.0 },
- { 0.0000000000000000, 20, 5,
+ { -0.0000000000000000, 20, 5,
0.0000000000000000, 0.0 },
- { 563861.76771496458, 20, 5,
+ { -563861.76771496458, 20, 5,
0.10000000000000009, 0.0 },
- { -472600.45321372483, 20, 5,
+ { 472600.45321372483, 20, 5,
0.20000000000000018, 0.0 },
- { -143765.42411270936, 20, 5,
+ { 143765.42411270936, 20, 5,
0.30000000000000004, 0.0 },
- { 613842.07728185353, 20, 5,
+ { -613842.07728185353, 20, 5,
0.40000000000000013, 0.0 },
- { -543428.40914592845, 20, 5,
+ { 543428.40914592845, 20, 5,
0.50000000000000000, 0.0 },
- { 114444.61447464178, 20, 5,
+ { -114444.61447464178, 20, 5,
0.60000000000000009, 0.0 },
- { 298127.28360361519, 20, 5,
+ { -298127.28360361519, 20, 5,
0.70000000000000018, 0.0 },
- { -503060.91484852589, 20, 5,
+ { 503060.91484852589, 20, 5,
0.80000000000000004, 0.0 },
- { 315702.32715133618, 20, 5,
+ { -315702.32715133618, 20, 5,
0.90000000000000013, 0.0 },
- { 0.0000000000000000, 20, 5,
+ { -0.0000000000000000, 20, 5,
1.0000000000000000, 0.0 },
};
const double toler019 = 2.5000000000000020e-13;
// Test data for l=50, m=1.
// max(|f - f_GSL|): 4.4408920985006262e-15 at index 3
// max(|f - f_GSL| / |f_GSL|): 6.6657627150738456e-16
-// mean(f - f_GSL): 6.3441315692866085e-17
+// mean(f - f_GSL): -6.3441315692866085e-17
// variance(f - f_GSL): 2.1130202818419960e-34
// stddev(f - f_GSL): 1.4536231567507432e-17
const testcase_assoc_legendre<double>
data023[21] =
{
- { 0.0000000000000000, 50, 1,
+ { -0.0000000000000000, 50, 1,
-1.0000000000000000, 0.0 },
- { -0.13424149984449490, 50, 1,
+ { 0.13424149984449490, 50, 1,
-0.90000000000000002, 0.0 },
- { 2.2011219672413018, 50, 1,
+ { -2.2011219672413018, 50, 1,
-0.80000000000000004, 0.0 },
- { 6.6622414993232004, 50, 1,
+ { -6.6622414993232004, 50, 1,
-0.69999999999999996, 0.0 },
- { 5.5772846936919249, 50, 1,
+ { -5.5772846936919249, 50, 1,
-0.59999999999999998, 0.0 },
- { 5.8787148815607608, 50, 1,
+ { -5.8787148815607608, 50, 1,
-0.50000000000000000, 0.0 },
- { 5.5473459458634080, 50, 1,
+ { -5.5473459458634080, 50, 1,
-0.39999999999999991, 0.0 },
- { 1.8444956647620248, 50, 1,
+ { -1.8444956647620248, 50, 1,
-0.29999999999999993, 0.0 },
- { -3.8722014306642127, 50, 1,
+ { 3.8722014306642127, 50, 1,
-0.19999999999999996, 0.0 },
- { -5.3488751322285628, 50, 1,
+ { 5.3488751322285628, 50, 1,
-0.099999999999999978, 0.0 },
- { -0.0000000000000000, 50, 1,
+ { 0.0000000000000000, 50, 1,
0.0000000000000000, 0.0 },
- { 5.3488751322285522, 50, 1,
+ { -5.3488751322285522, 50, 1,
0.10000000000000009, 0.0 },
- { 3.8722014306642620, 50, 1,
+ { -3.8722014306642620, 50, 1,
0.20000000000000018, 0.0 },
- { -1.8444956647619930, 50, 1,
+ { 1.8444956647619930, 50, 1,
0.30000000000000004, 0.0 },
- { -5.5473459458633814, 50, 1,
+ { 5.5473459458633814, 50, 1,
0.40000000000000013, 0.0 },
- { -5.8787148815607608, 50, 1,
+ { 5.8787148815607608, 50, 1,
0.50000000000000000, 0.0 },
- { -5.5772846936919453, 50, 1,
+ { 5.5772846936919453, 50, 1,
0.60000000000000009, 0.0 },
- { -6.6622414993232182, 50, 1,
+ { 6.6622414993232182, 50, 1,
0.70000000000000018, 0.0 },
- { -2.2011219672413018, 50, 1,
+ { 2.2011219672413018, 50, 1,
0.80000000000000004, 0.0 },
- { 0.13424149984438935, 50, 1,
+ { -0.13424149984438935, 50, 1,
0.90000000000000013, 0.0 },
- { 0.0000000000000000, 50, 1,
+ { -0.0000000000000000, 50, 1,
1.0000000000000000, 0.0 },
};
const double toler023 = 2.5000000000000020e-13;
// Test data for l=50, m=5.
// max(|f - f_GSL|): 7.4505805969238281e-08 at index 14
// max(|f - f_GSL| / |f_GSL|): 2.0088060426072767e-15
-// mean(f - f_GSL): -6.3862119402204238e-09
+// mean(f - f_GSL): 6.3862119402204238e-09
// variance(f - f_GSL): 2.1411444046342303e-18
// stddev(f - f_GSL): 1.4632649810045447e-09
const testcase_assoc_legendre<double>
data025[21] =
{
- { -0.0000000000000000, 50, 5,
+ { 0.0000000000000000, 50, 5,
-1.0000000000000000, 0.0 },
- { -27340473.952132829, 50, 5,
+ { 27340473.952132829, 50, 5,
-0.90000000000000002, 0.0 },
- { 27753716.768532373, 50, 5,
+ { -27753716.768532373, 50, 5,
-0.80000000000000004, 0.0 },
- { 40808153.913493633, 50, 5,
+ { -40808153.913493633, 50, 5,
-0.69999999999999996, 0.0 },
- { 32071189.035790090, 50, 5,
+ { -32071189.035790090, 50, 5,
-0.59999999999999998, 0.0 },
- { 36265736.218529105, 50, 5,
+ { -36265736.218529105, 50, 5,
-0.50000000000000000, 0.0 },
- { 37089596.700204931, 50, 5,
+ { -37089596.700204931, 50, 5,
-0.39999999999999991, 0.0 },
- { 14562029.629244687, 50, 5,
+ { -14562029.629244687, 50, 5,
-0.29999999999999993, 0.0 },
- { -23686895.217517190, 50, 5,
+ { 23686895.217517190, 50, 5,
-0.19999999999999996, 0.0 },
- { -34878992.965676002, 50, 5,
+ { 34878992.965676002, 50, 5,
-0.099999999999999978, 0.0 },
- { -0.0000000000000000, 50, 5,
+ { 0.0000000000000000, 50, 5,
0.0000000000000000, 0.0 },
- { 34878992.965675958, 50, 5,
+ { -34878992.965675958, 50, 5,
0.10000000000000009, 0.0 },
- { 23686895.217517529, 50, 5,
+ { -23686895.217517529, 50, 5,
0.20000000000000018, 0.0 },
- { -14562029.629244499, 50, 5,
+ { 14562029.629244499, 50, 5,
0.30000000000000004, 0.0 },
- { -37089596.700204782, 50, 5,
+ { 37089596.700204782, 50, 5,
0.40000000000000013, 0.0 },
- { -36265736.218529105, 50, 5,
+ { 36265736.218529105, 50, 5,
0.50000000000000000, 0.0 },
- { -32071189.035790242, 50, 5,
+ { 32071189.035790242, 50, 5,
0.60000000000000009, 0.0 },
- { -40808153.913493834, 50, 5,
+ { 40808153.913493834, 50, 5,
0.70000000000000018, 0.0 },
- { -27753716.768532373, 50, 5,
+ { 27753716.768532373, 50, 5,
0.80000000000000004, 0.0 },
- { 27340473.952132136, 50, 5,
+ { -27340473.952132136, 50, 5,
0.90000000000000013, 0.0 },
- { 0.0000000000000000, 50, 5,
+ { -0.0000000000000000, 50, 5,
1.0000000000000000, 0.0 },
};
const double toler025 = 2.5000000000000020e-13;
// Test data for l=100, m=1.
// max(|f - f_GSL|): 1.1546319456101628e-14 at index 3
// max(|f - f_GSL| / |f_GSL|): 2.1111954004946762e-15
-// mean(f - f_GSL): -8.0358999877630379e-16
+// mean(f - f_GSL): 8.0358999877630379e-16
// variance(f - f_GSL): 3.3902236521998243e-32
// stddev(f - f_GSL): 1.8412559985509414e-16
const testcase_assoc_legendre<double>
data030[21] =
{
- { -0.0000000000000000, 100, 1,
+ { 0.0000000000000000, 100, 1,
-1.0000000000000000, 0.0 },
- { 6.5200167187780345, 100, 1,
+ { -6.5200167187780345, 100, 1,
-0.90000000000000002, 0.0 },
- { 9.0065170007027486, 100, 1,
+ { -9.0065170007027486, 100, 1,
-0.80000000000000004, 0.0 },
- { -5.4690908541180976, 100, 1,
+ { 5.4690908541180976, 100, 1,
-0.69999999999999996, 0.0 },
- { -8.6275439170430790, 100, 1,
+ { 8.6275439170430790, 100, 1,
-0.59999999999999998, 0.0 },
- { -6.0909031663448454, 100, 1,
+ { 6.0909031663448454, 100, 1,
-0.50000000000000000, 0.0 },
- { 4.1160338699560395, 100, 1,
+ { -4.1160338699560395, 100, 1,
-0.39999999999999991, 0.0 },
- { 5.8491043010758634, 100, 1,
+ { -5.8491043010758634, 100, 1,
-0.29999999999999993, 0.0 },
- { -7.9435138723089826, 100, 1,
+ { 7.9435138723089826, 100, 1,
-0.19999999999999996, 0.0 },
- { 4.7996285823989355, 100, 1,
+ { -4.7996285823989355, 100, 1,
-0.099999999999999978, 0.0 },
- { 0.0000000000000000, 100, 1,
+ { -0.0000000000000000, 100, 1,
0.0000000000000000, 0.0 },
- { -4.7996285823990101, 100, 1,
+ { 4.7996285823990101, 100, 1,
0.10000000000000009, 0.0 },
- { 7.9435138723090155, 100, 1,
+ { -7.9435138723090155, 100, 1,
0.20000000000000018, 0.0 },
- { -5.8491043010758013, 100, 1,
+ { 5.8491043010758013, 100, 1,
0.30000000000000004, 0.0 },
- { -4.1160338699562162, 100, 1,
+ { 4.1160338699562162, 100, 1,
0.40000000000000013, 0.0 },
- { 6.0909031663448454, 100, 1,
+ { -6.0909031663448454, 100, 1,
0.50000000000000000, 0.0 },
- { 8.6275439170430470, 100, 1,
+ { -8.6275439170430470, 100, 1,
0.60000000000000009, 0.0 },
- { 5.4690908541178693, 100, 1,
+ { -5.4690908541178693, 100, 1,
0.70000000000000018, 0.0 },
- { -9.0065170007027486, 100, 1,
+ { 9.0065170007027486, 100, 1,
0.80000000000000004, 0.0 },
- { -6.5200167187777787, 100, 1,
+ { 6.5200167187777787, 100, 1,
0.90000000000000013, 0.0 },
- { 0.0000000000000000, 100, 1,
+ { -0.0000000000000000, 100, 1,
1.0000000000000000, 0.0 },
};
const double toler030 = 2.5000000000000020e-13;
// Test data for l=100, m=5.
// max(|f - f_GSL|): 1.4305114746093750e-06 at index 14
// max(|f - f_GSL| / |f_GSL|): 3.7628882298853693e-15
-// mean(f - f_GSL): -5.1089695521763390e-08
+// mean(f - f_GSL): 5.1089695521763390e-08
// variance(f - f_GSL): 1.3703324189659077e-16
// stddev(f - f_GSL): 1.1706119848036358e-08
const testcase_assoc_legendre<double>
data032[21] =
{
- { 0.0000000000000000, 100, 5,
+ { -0.0000000000000000, 100, 5,
-1.0000000000000000, 0.0 },
- { 900551126.09653807, 100, 5,
+ { -900551126.09653807, 100, 5,
-0.90000000000000002, 0.0 },
- { 988567431.55756140, 100, 5,
+ { -988567431.55756140, 100, 5,
-0.80000000000000004, 0.0 },
- { -645646451.90344620, 100, 5,
+ { 645646451.90344620, 100, 5,
-0.69999999999999996, 0.0 },
- { -897114585.29920685, 100, 5,
+ { 897114585.29920685, 100, 5,
-0.59999999999999998, 0.0 },
- { -661710744.42483854, 100, 5,
+ { 661710744.42483854, 100, 5,
-0.50000000000000000, 0.0 },
- { 380163158.51424754, 100, 5,
+ { -380163158.51424754, 100, 5,
-0.39999999999999991, 0.0 },
- { 617391071.36633193, 100, 5,
+ { -617391071.36633193, 100, 5,
-0.29999999999999993, 0.0 },
- { -805288801.85509109, 100, 5,
+ { 805288801.85509109, 100, 5,
-0.19999999999999996, 0.0 },
- { 481041740.16728652, 100, 5,
+ { -481041740.16728652, 100, 5,
-0.099999999999999978, 0.0 },
- { 0.0000000000000000, 100, 5,
+ { -0.0000000000000000, 100, 5,
0.0000000000000000, 0.0 },
- { -481041740.16729391, 100, 5,
+ { 481041740.16729391, 100, 5,
0.10000000000000009, 0.0 },
- { 805288801.85509515, 100, 5,
+ { -805288801.85509515, 100, 5,
0.20000000000000018, 0.0 },
- { -617391071.36632574, 100, 5,
+ { 617391071.36632574, 100, 5,
0.30000000000000004, 0.0 },
- { -380163158.51426536, 100, 5,
+ { 380163158.51426536, 100, 5,
0.40000000000000013, 0.0 },
- { 661710744.42483854, 100, 5,
+ { -661710744.42483854, 100, 5,
0.50000000000000000, 0.0 },
- { 897114585.29920483, 100, 5,
+ { -897114585.29920483, 100, 5,
0.60000000000000009, 0.0 },
- { 645646451.90342283, 100, 5,
+ { -645646451.90342283, 100, 5,
0.70000000000000018, 0.0 },
- { -988567431.55756140, 100, 5,
+ { 988567431.55756140, 100, 5,
0.80000000000000004, 0.0 },
- { -900551126.09651637, 100, 5,
+ { 900551126.09651637, 100, 5,
0.90000000000000013, 0.0 },
- { 0.0000000000000000, 100, 5,
+ { -0.0000000000000000, 100, 5,
1.0000000000000000, 0.0 },
};
const double toler032 = 2.5000000000000020e-13;