35 if (z == 0)
return std::numeric_limits<double>::infinity();
36 if (z == 1)
return - std::numeric_limits<double>::infinity();
48 if (z == 0)
return - std::numeric_limits<double>::infinity();
49 if (z == 1)
return + std::numeric_limits<double>::infinity();
94 return m/(
n *
y) -
m/
n;
99 return m *
y /(
n * ( 1. -
y) );
105 if (
n == 0)
return 0;
108 return m *
y /(
n * ( 1. -
y) );
177 return a * z +
b * (1.0 - z);
185 return b * z +
a * (1.0 - z);
195 static double f[982] = {
196 0 , 0 , 0 ,0 ,0 ,-2.244733,
197 -2.204365,-2.168163,-2.135219,-2.104898,-2.076740,-2.050397,
198 -2.025605,-2.002150,-1.979866,-1.958612,-1.938275,-1.918760,
199 -1.899984,-1.881879,-1.864385,-1.847451,-1.831030,-1.815083,
200 -1.799574,-1.784473,-1.769751,-1.755383,-1.741346,-1.727620,
201 -1.714187,-1.701029,-1.688130,-1.675477,-1.663057,-1.650858,
202 -1.638868,-1.627078,-1.615477,-1.604058,-1.592811,-1.581729,
203 -1.570806,-1.560034,-1.549407,-1.538919,-1.528565,-1.518339,
204 -1.508237,-1.498254,-1.488386,-1.478628,-1.468976,-1.459428,
205 -1.449979,-1.440626,-1.431365,-1.422195,-1.413111,-1.404112,
206 -1.395194,-1.386356,-1.377594,-1.368906,-1.360291,-1.351746,
207 -1.343269,-1.334859,-1.326512,-1.318229,-1.310006,-1.301843,
208 -1.293737,-1.285688,-1.277693,-1.269752,-1.261863,-1.254024,
209 -1.246235,-1.238494,-1.230800,-1.223153,-1.215550,-1.207990,
210 -1.200474,-1.192999,-1.185566,-1.178172,-1.170817,-1.163500,
211 -1.156220,-1.148977,-1.141770,-1.134598,-1.127459,-1.120354,
212 -1.113282,-1.106242,-1.099233,-1.092255,
213 -1.085306,-1.078388,-1.071498,-1.064636,-1.057802,-1.050996,
214 -1.044215,-1.037461,-1.030733,-1.024029,-1.017350,-1.010695,
215 -1.004064, -.997456, -.990871, -.984308, -.977767, -.971247,
216 -.964749, -.958271, -.951813, -.945375, -.938957, -.932558,
217 -.926178, -.919816, -.913472, -.907146, -.900838, -.894547,
218 -.888272, -.882014, -.875773, -.869547, -.863337, -.857142,
219 -.850963, -.844798, -.838648, -.832512, -.826390, -.820282,
220 -.814187, -.808106, -.802038, -.795982, -.789940, -.783909,
221 -.777891, -.771884, -.765889, -.759906, -.753934, -.747973,
222 -.742023, -.736084, -.730155, -.724237, -.718328, -.712429,
223 -.706541, -.700661, -.694791, -.688931, -.683079, -.677236,
224 -.671402, -.665576, -.659759, -.653950, -.648149, -.642356,
225 -.636570, -.630793, -.625022, -.619259, -.613503, -.607754,
226 -.602012, -.596276, -.590548, -.584825, -.579109, -.573399,
227 -.567695, -.561997, -.556305, -.550618, -.544937, -.539262,
228 -.533592, -.527926, -.522266, -.516611, -.510961, -.505315,
229 -.499674, -.494037, -.488405, -.482777,
230 -.477153, -.471533, -.465917, -.460305, -.454697, -.449092,
231 -.443491, -.437893, -.432299, -.426707, -.421119, -.415534,
232 -.409951, -.404372, -.398795, -.393221, -.387649, -.382080,
233 -.376513, -.370949, -.365387, -.359826, -.354268, -.348712,
234 -.343157, -.337604, -.332053, -.326503, -.320955, -.315408,
235 -.309863, -.304318, -.298775, -.293233, -.287692, -.282152,
236 -.276613, -.271074, -.265536, -.259999, -.254462, -.248926,
237 -.243389, -.237854, -.232318, -.226783, -.221247, -.215712,
238 -.210176, -.204641, -.199105, -.193568, -.188032, -.182495,
239 -.176957, -.171419, -.165880, -.160341, -.154800, -.149259,
240 -.143717, -.138173, -.132629, -.127083, -.121537, -.115989,
241 -.110439, -.104889, -.099336, -.093782, -.088227, -.082670,
242 -.077111, -.071550, -.065987, -.060423, -.054856, -.049288,
243 -.043717, -.038144, -.032569, -.026991, -.021411, -.015828,
244 -.010243, -.004656, .000934, .006527, .012123, .017722,
245 .023323, .028928, .034535, .040146, .045759, .051376,
246 .056997, .062620, .068247, .073877,
247 .079511, .085149, .090790, .096435, .102083, .107736,
248 .113392, .119052, .124716, .130385, .136057, .141734,
249 .147414, .153100, .158789, .164483, .170181, .175884,
250 .181592, .187304, .193021, .198743, .204469, .210201,
251 .215937, .221678, .227425, .233177, .238933, .244696,
252 .250463, .256236, .262014, .267798, .273587, .279382,
253 .285183, .290989, .296801, .302619, .308443, .314273,
254 .320109, .325951, .331799, .337654, .343515, .349382,
255 .355255, .361135, .367022, .372915, .378815, .384721,
256 .390634, .396554, .402481, .408415, .414356, .420304,
257 .426260, .432222, .438192, .444169, .450153, .456145,
258 .462144, .468151, .474166, .480188, .486218, .492256,
259 .498302, .504356, .510418, .516488, .522566, .528653,
260 .534747, .540850, .546962, .553082, .559210, .565347,
261 .571493, .577648, .583811, .589983, .596164, .602355,
262 .608554, .614762, .620980, .627207, .633444, .639689,
263 .645945, .652210, .658484, .664768,
264 .671062, .677366, .683680, .690004, .696338, .702682,
265 .709036, .715400, .721775, .728160, .734556, .740963,
266 .747379, .753807, .760246, .766695, .773155, .779627,
267 .786109, .792603, .799107, .805624, .812151, .818690,
268 .825241, .831803, .838377, .844962, .851560, .858170,
269 .864791, .871425, .878071, .884729, .891399, .898082,
270 .904778, .911486, .918206, .924940, .931686, .938446,
271 .945218, .952003, .958802, .965614, .972439, .979278,
272 .986130, .992996, .999875, 1.006769, 1.013676, 1.020597,
273 1.027533, 1.034482, 1.041446, 1.048424, 1.055417, 1.062424,
274 1.069446, 1.076482, 1.083534, 1.090600, 1.097681, 1.104778,
275 1.111889, 1.119016, 1.126159, 1.133316, 1.140490, 1.147679,
276 1.154884, 1.162105, 1.169342, 1.176595, 1.183864, 1.191149,
277 1.198451, 1.205770, 1.213105, 1.220457, 1.227826, 1.235211,
278 1.242614, 1.250034, 1.257471, 1.264926, 1.272398, 1.279888,
279 1.287395, 1.294921, 1.302464, 1.310026, 1.317605, 1.325203,
280 1.332819, 1.340454, 1.348108, 1.355780,
281 1.363472, 1.371182, 1.378912, 1.386660, 1.394429, 1.402216,
282 1.410024, 1.417851, 1.425698, 1.433565, 1.441453, 1.449360,
283 1.457288, 1.465237, 1.473206, 1.481196, 1.489208, 1.497240,
284 1.505293, 1.513368, 1.521465, 1.529583, 1.537723, 1.545885,
285 1.554068, 1.562275, 1.570503, 1.578754, 1.587028, 1.595325,
286 1.603644, 1.611987, 1.620353, 1.628743, 1.637156, 1.645593,
287 1.654053, 1.662538, 1.671047, 1.679581, 1.688139, 1.696721,
288 1.705329, 1.713961, 1.722619, 1.731303, 1.740011, 1.748746,
289 1.757506, 1.766293, 1.775106, 1.783945, 1.792810, 1.801703,
290 1.810623, 1.819569, 1.828543, 1.837545, 1.846574, 1.855631,
291 1.864717, 1.873830, 1.882972, 1.892143, 1.901343, 1.910572,
292 1.919830, 1.929117, 1.938434, 1.947781, 1.957158, 1.966566,
293 1.976004, 1.985473, 1.994972, 2.004503, 2.014065, 2.023659,
294 2.033285, 2.042943, 2.052633, 2.062355, 2.072110, 2.081899,
295 2.091720, 2.101575, 2.111464, 2.121386, 2.131343, 2.141334,
296 2.151360, 2.161421, 2.171517, 2.181648, 2.191815, 2.202018,
297 2.212257, 2.222533, 2.232845, 2.243195,
298 2.253582, 2.264006, 2.274468, 2.284968, 2.295507, 2.306084,
299 2.316701, 2.327356, 2.338051, 2.348786, 2.359562, 2.370377,
300 2.381234, 2.392131, 2.403070, 2.414051, 2.425073, 2.436138,
301 2.447246, 2.458397, 2.469591, 2.480828, 2.492110, 2.503436,
302 2.514807, 2.526222, 2.537684, 2.549190, 2.560743, 2.572343,
303 2.583989, 2.595682, 2.607423, 2.619212, 2.631050, 2.642936,
304 2.654871, 2.666855, 2.678890, 2.690975, 2.703110, 2.715297,
305 2.727535, 2.739825, 2.752168, 2.764563, 2.777012, 2.789514,
306 2.802070, 2.814681, 2.827347, 2.840069, 2.852846, 2.865680,
307 2.878570, 2.891518, 2.904524, 2.917588, 2.930712, 2.943894,
308 2.957136, 2.970439, 2.983802, 2.997227, 3.010714, 3.024263,
309 3.037875, 3.051551, 3.065290, 3.079095, 3.092965, 3.106900,
310 3.120902, 3.134971, 3.149107, 3.163312, 3.177585, 3.191928,
311 3.206340, 3.220824, 3.235378, 3.250005, 3.264704, 3.279477,
312 3.294323, 3.309244, 3.324240, 3.339312, 3.354461, 3.369687,
313 3.384992, 3.400375, 3.415838, 3.431381, 3.447005, 3.462711,
314 3.478500, 3.494372, 3.510328, 3.526370,
315 3.542497, 3.558711, 3.575012, 3.591402, 3.607881, 3.624450,
316 3.641111, 3.657863, 3.674708, 3.691646, 3.708680, 3.725809,
317 3.743034, 3.760357, 3.777779, 3.795300, 3.812921, 3.830645,
318 3.848470, 3.866400, 3.884434, 3.902574, 3.920821, 3.939176,
319 3.957640, 3.976215, 3.994901, 4.013699, 4.032612, 4.051639,
320 4.070783, 4.090045, 4.109425, 4.128925, 4.148547, 4.168292,
321 4.188160, 4.208154, 4.228275, 4.248524, 4.268903, 4.289413,
322 4.310056, 4.330832, 4.351745, 4.372794, 4.393982, 4.415310,
323 4.436781, 4.458395, 4.480154, 4.502060, 4.524114, 4.546319,
324 4.568676, 4.591187, 4.613854, 4.636678, 4.659662, 4.682807,
325 4.706116, 4.729590, 4.753231, 4.777041, 4.801024, 4.825179,
326 4.849511, 4.874020, 4.898710, 4.923582, 4.948639, 4.973883,
327 4.999316, 5.024942, 5.050761, 5.076778, 5.102993, 5.129411,
328 5.156034, 5.182864, 5.209903, 5.237156, 5.264625, 5.292312,
329 5.320220, 5.348354, 5.376714, 5.405306, 5.434131, 5.463193,
330 5.492496, 5.522042, 5.551836, 5.581880, 5.612178, 5.642734,
331 5.673552, 5.704634, 5.735986, 5.767610,
332 5.799512, 5.831694, 5.864161, 5.896918, 5.929968, 5.963316,
333 5.996967, 6.030925, 6.065194, 6.099780, 6.134687, 6.169921,
334 6.205486, 6.241387, 6.277630, 6.314220, 6.351163, 6.388465,
335 6.426130, 6.464166, 6.502578, 6.541371, 6.580553, 6.620130,
336 6.660109, 6.700495, 6.741297, 6.782520, 6.824173, 6.866262,
337 6.908795, 6.951780, 6.995225, 7.039137, 7.083525, 7.128398,
338 7.173764, 7.219632, 7.266011, 7.312910, 7.360339, 7.408308,
339 7.456827, 7.505905, 7.555554, 7.605785, 7.656608, 7.708035,
340 7.760077, 7.812747, 7.866057, 7.920019, 7.974647, 8.029953,
341 8.085952, 8.142657, 8.200083, 8.258245, 8.317158, 8.376837,
342 8.437300, 8.498562, 8.560641, 8.623554, 8.687319, 8.751955,
343 8.817481, 8.883916, 8.951282, 9.019600, 9.088889, 9.159174,
344 9.230477, 9.302822, 9.376233, 9.450735, 9.526355, 9.603118,
345 9.681054, 9.760191, 9.840558, 9.922186,10.005107,10.089353,
346 10.174959,10.261958,10.350389,10.440287,10.531693,10.624646,
347 10.719188,10.815362,10.913214,11.012789,11.114137,11.217307,
348 11.322352,11.429325,11.538283,11.649285,
349 11.762390,11.877664,11.995170,12.114979,12.237161,12.361791,
350 12.488946,12.618708,12.751161,12.886394,13.024498,13.165570,
351 13.309711,13.457026,13.607625,13.761625,13.919145,14.080314,
352 14.245263,14.414134,14.587072,14.764233,14.945778,15.131877,
353 15.322712,15.518470,15.719353,15.925570,16.137345,16.354912,
354 16.578520,16.808433,17.044929,17.288305,17.538873,17.796967,
355 18.062943,18.337176,18.620068,18.912049,19.213574,19.525133,
356 19.847249,20.180480,20.525429,20.882738,21.253102,21.637266,
357 22.036036,22.450278,22.880933,23.329017,23.795634,24.281981,
358 24.789364,25.319207,25.873062,26.452634,27.059789,27.696581,
359 28.365274,29.068370,29.808638,30.589157,31.413354,32.285060,
360 33.208568,34.188705,35.230920,36.341388,37.527131,38.796172,
361 40.157721,41.622399,43.202525,44.912465,46.769077,48.792279,
362 51.005773,53.437996,56.123356,59.103894 };
364 if (xi <= 0)
return 0;
365 if (z <= 0)
return -std::numeric_limits<double>::infinity();
366 if (z >= 1)
return std::numeric_limits<double>::infinity();
372 if (i >= 70 && i < 800) {
373 ranlan =
f[i-1] + u*(
f[i] -
f[i-1]);
374 }
else if (i >= 7 && i <= 980) {
375 ranlan =
f[i-1] + u*(
f[i]-
f[i-1]-0.25*(1-u)*(
f[i+1]-
f[i]-
f[i-1]+
f[i-2]));
379 ranlan = ((0.99858950+(3.45213058E1+1.70854528E1*u)*u)/
380 (1 +(3.41760202E1+4.01244582 *u)*u))*
386 ranlan = (1.00060006+2.63991156E2*u+4.37320068E3*
v)/
387 ((1 +2.57368075E2*u+3.41448018E3*
v)*u);
389 ranlan = (1.00001538+6.07514119E3*u+7.34266409E5*
v)/
390 ((1 +6.06511919E3*u+6.94021044E5*
v)*u);
double fdistribution_quantile_c(double z, double n, double m)
Inverse ( ) of the cumulative distribution function of the upper tail of the f distribution (fdistrib...
double uniform_quantile_c(double z, double a, double b)
Inverse ( ) of the cumulative distribution function of the upper tail of the uniform (flat) distribut...
double landau_quantile(double z, double xi=1)
Inverse ( ) of the cumulative distribution function of the lower tail of the Landau distribution (lan...
double chisquared_quantile_c(double z, double r)
Inverse ( ) of the cumulative distribution function of the upper tail of the distribution with degr...
double normal_quantile(double z, double sigma)
Inverse ( ) of the cumulative distribution function of the lower tail of the normal (Gaussian) distri...
double exponential_quantile_c(double z, double lambda)
Inverse ( ) of the cumulative distribution function of the upper tail of the exponential distribution...
double gamma_quantile_c(double z, double alpha, double theta)
Inverse ( ) of the cumulative distribution function of the upper tail of the gamma distribution (gamm...
double landau_quantile_c(double z, double xi=1)
Inverse ( ) of the cumulative distribution function of the upper tail of the landau distribution (lan...
double fdistribution_quantile(double z, double n, double m)
Inverse ( ) of the cumulative distribution function of the lower tail of the f distribution (fdistrib...
double cauchy_quantile_c(double z, double b)
Inverse ( ) of the cumulative distribution function of the upper tail of the Cauchy distribution (cau...
double uniform_quantile(double z, double a, double b)
Inverse ( ) of the cumulative distribution function of the lower tail of the uniform (flat) distribut...
double normal_quantile_c(double z, double sigma)
Inverse ( ) of the cumulative distribution function of the upper tail of the normal (Gaussian) distri...
double chisquared_quantile(double z, double r)
Inverse ( ) of the cumulative distribution function of the lower tail of the distribution with degr...
double beta_quantile_c(double x, double a, double b)
Inverse ( ) of the cumulative distribution function of the lower tail of the beta distribution (beta_...
double gamma_quantile(double z, double alpha, double theta)
Inverse ( ) of the cumulative distribution function of the lower tail of the gamma distribution (gamm...
double exponential_quantile(double z, double lambda)
Inverse ( ) of the cumulative distribution function of the lower tail of the exponential distribution...
double lognormal_quantile(double x, double m, double s)
Inverse ( ) of the cumulative distribution function of the lower tail of the lognormal distribution (...
double cauchy_quantile(double z, double b)
Inverse ( ) of the cumulative distribution function of the lower tail of the Cauchy distribution (cau...
double beta_quantile(double x, double a, double b)
Inverse ( ) of the cumulative distribution function of the upper tail of the beta distribution (beta_...
double lognormal_quantile_c(double x, double m, double s)
Inverse ( ) of the cumulative distribution function of the upper tail of the lognormal distribution (...
Namespace for new Math classes and functions.
double igami(double a, double y)
double incbi(double a, double b, double y)
double log1p(double x)
declarations for functions which are not implemented by some compilers
static constexpr double s