mirror of
https://github.com/lcn2/calc.git
synced 2025-08-16 01:03:29 +03:00
To make the meaning a bit more clear in cal/regress.cal, we have renamed the following test calc resource files that are related to the calc regression test suite: cal/test1700.cal -> cal/test8000.read.cal cal/test2300.cal -> cal/test2300.obj_incdec.cal cal/test2600.cal -> cal/test2600.numfunc.cal cal/test2700.cal -> cal/test2700.isqrt.cal cal/test3100.cal -> cal/test3100.matobj.cal cal/test3400.cal -> cal/test3400.trig.cal cal/test4000.cal -> cal/test4000.ptest.cal cal/test4100.cal -> cal/test4100.redc.cal cal/test4600.cal -> cal/test4600.fileop.cal cal/test5100.cal -> cal/test5100.newdecl.cal cal/test5200.cal -> cal/test5200.globstat.cal cal/test8400.cal -> cal/test8400.quit.cal cal/test8500.cal -> cal/test8500.divmod.cal cal/test8600.cal -> cal/test8600.maxargs.cal cal/set8700.cal -> cal/test8700.dotest.cal cal/test8900.cal -> cal/test8900.special.cal cal/test9300.cal -> cal/test9300.frem.cal Added to test 94dd, read of a number of new calc resource files that are not already read as a result of the calc regression test suite.
3128 lines
72 KiB
Plaintext
3128 lines
72 KiB
Plaintext
/*
|
|
* test8900.special - test calc resource functions by Christoph Zurnieden for test 89dd
|
|
*
|
|
* Copyright (C) 2013,2021,2023 Christoph Zurnieden
|
|
*
|
|
* Calc is open software; you can redistribute it and/or modify it under
|
|
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
* as published by the Free Software Foundation.
|
|
*
|
|
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
* Public License for more details.
|
|
*
|
|
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*
|
|
* Under source code control: 2013/08/11 01:31:28
|
|
* File existed as early as: 2013
|
|
*/
|
|
|
|
|
|
static __CZ__eps = 1e-20;
|
|
|
|
|
|
/*
|
|
* load once, the calc resource functions contributed by Christoph Zurnieden
|
|
*/
|
|
read -once bernpoly.cal;
|
|
read -once brentsolve.cal;
|
|
read -once constants.cal;
|
|
read -once factorial.cal;
|
|
read -once factorial2.cal;
|
|
read -once lambertw.cal;
|
|
read -once lnseries.cal;
|
|
read -once specialfunctions.cal;
|
|
read -once statistics.cal;
|
|
read -once toomcook.cal;
|
|
read -once zeta2.cal;
|
|
read -once intnum.cal;
|
|
|
|
|
|
/*
|
|
* tests of correctness of the functions implemented by the above listed
|
|
* author. All values tested against have been computed with at least two
|
|
* independent algorithms where possible (indicated if not).
|
|
*/
|
|
define t01()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if (gamma(5) != 24) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if (!iserror(gamma(-5))) {
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
if (abs(gamma(-5.5) - 0.01091265478190986298673234429) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 3;
|
|
}
|
|
if (abs
|
|
(gamma(5.5 + 5.5i) -
|
|
(-3.760669488993539011972109411 - 1.068828791178021218008599278i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 4;
|
|
}
|
|
if (abs
|
|
(gamma(-5.5 + 5.5i) -
|
|
(-0.0000000031513765339396 - 0.00000000565396294185819i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 5;
|
|
}
|
|
if (abs
|
|
(gamma(-5.5 - 5.5i) -
|
|
(-0.0000000031513765339396 + 0.00000000565396294185819i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 5;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
/*
|
|
test 02 tests lngamma(z) as ln(gamma(z))for a lot of values. Twice.
|
|
*/
|
|
define t02(type)
|
|
{
|
|
local eps k;
|
|
eps = epsilon(1e-20);
|
|
|
|
if (!isnull(type)) {
|
|
/* test lngamma to higher precision */
|
|
epsilon(1e-50)
|
|
}
|
|
|
|
if (!iserror(lngamma(-5))) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
|
|
if (abs
|
|
(lngamma(-4.400) -
|
|
(-2.602796356578054085860353775504851660134124890968895 +
|
|
9.424777960769379715387930149838508652591508198125317i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
if (abs
|
|
(lngamma(-3.400) -
|
|
(-1.121191815653838606981937409307733431762519256939740 +
|
|
12.566370614359172953850573533118011536788677597500423i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 3;
|
|
}
|
|
if (abs
|
|
(lngamma(-2.400) -
|
|
(0.1025836159682770986668378753392054643000824013774864 +
|
|
3.1415926535897932384626433832795028841971693993751058i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 4;
|
|
}
|
|
if (abs
|
|
(lngamma(-1.400) -
|
|
(0.9780523533221770342957880219518966655729718736522287 +
|
|
6.2831853071795864769252867665590057683943387987502116i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 5;
|
|
}
|
|
if (abs
|
|
(lngamma(-0.4000) -
|
|
(1.3145245899433899648003814321688887556844552489655721 -
|
|
3.1415926535897932384626433832795028841971693993751058i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 6;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000) -
|
|
(0.3982338580692348996168542204008776842343540290573096)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 7;
|
|
}
|
|
if (abs
|
|
(lngamma(1.600) -
|
|
(-0.112591765696755783588659875902784250643756767388458)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 8;
|
|
}
|
|
if (abs
|
|
(lngamma(2.600) -
|
|
(0.3574118635489797700622771552455578140571422814237894)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 9;
|
|
}
|
|
if (abs
|
|
(lngamma(3.600) -
|
|
(1.3129233085764161315150052635846887793368088719154788)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 10;
|
|
}
|
|
if (abs
|
|
(lngamma(4.600) -
|
|
(2.5938571540384804491219685256617291171816887676527152)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 11;
|
|
}
|
|
if (abs
|
|
(lngamma(5.600) -
|
|
(4.1199134575335297653279620242457375960984677282246333)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 12;
|
|
}
|
|
if (abs
|
|
(lngamma(55.60) -
|
|
(166.72233170723938827069082693550384745200937091660266)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 13;
|
|
}
|
|
if (abs
|
|
(lngamma(56.60) -
|
|
(170.74051490849592496269608464261138016300186635704956)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 14;
|
|
}
|
|
if (abs
|
|
(lngamma(57.60) -
|
|
(174.77652389370506221274131245618033272827669850568250)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 15;
|
|
}
|
|
if (abs
|
|
(lngamma(58.60) -
|
|
(178.83004646140690776801720420409007933842357893886075)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 16;
|
|
}
|
|
if (abs
|
|
(lngamma(59.60) -
|
|
(182.90078115798987469935628513367638988912775224248394)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 17;
|
|
}
|
|
if (abs
|
|
(lngamma(60.60) -
|
|
(186.98843673206117877516518619701249930553373579376865)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 18;
|
|
}
|
|
if (abs
|
|
(lngamma(61.60) -
|
|
(191.09273162513644754284387036762182652754650758452049)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 19;
|
|
}
|
|
if (abs
|
|
(lngamma(62.60) -
|
|
(195.21339349567592163624487159872030105363069808249176)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 20;
|
|
}
|
|
if (abs
|
|
(lngamma(63.60) -
|
|
(199.35015877378197447832287757475132376767819599656051)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 21;
|
|
}
|
|
if (abs
|
|
(lngamma(64.60) -
|
|
(203.50277224412805093867906473893489617123556308738621)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 22;
|
|
}
|
|
if (abs
|
|
(lngamma(65.60) -
|
|
(207.67098665491660710433686745546968860453554400700257)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 23;
|
|
}
|
|
if (abs
|
|
(lngamma(-4.400 + 0.3000i) -
|
|
(-3.012170168780542935643977654089900903230224118194902 -
|
|
14.995647773931851220184151830452947610096345479769497i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 24;
|
|
}
|
|
if (abs
|
|
(lngamma(-3.400 + 0.3000i) -
|
|
(-1.528246633748315285937279325345084965509129720585190 -
|
|
11.922131578600057457117323569444702920656889937242177i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 25;
|
|
}
|
|
if (abs
|
|
(lngamma(-2.400 + 0.3000i) -
|
|
(-0.300593543742460500003778676081911614052942606849246 -
|
|
8.8685462985380049870334027293206734277553648141421909i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 26;
|
|
}
|
|
if (abs
|
|
(lngamma(-1.400 + 0.3000i) -
|
|
(0.5826272868794220627005984935520030051588811118590927 -
|
|
5.8513086394949731836021141952050415691313656065368892i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 27;
|
|
}
|
|
if (abs
|
|
(lngamma(-0.4000 + 0.3000i) -
|
|
(0.9415471834545804679163683919994364115087855350642294 -
|
|
2.9208093191279264919817355540741378979796654077163755i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 28;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 + 0.3000i) -
|
|
(0.2484000028946351584991362705412598434332854007039741 -
|
|
0.4227177743314176403219013995119576518240065994565821i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 29;
|
|
}
|
|
if (abs
|
|
(lngamma(1.600 + 0.3000i) -
|
|
(-0.150853845214250646823230280607484839757524852967790 +
|
|
0.0409298346693884758923548319492567502045304548295381i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 30;
|
|
}
|
|
if (abs
|
|
(lngamma(2.600 + 0.3000i) -
|
|
(0.3364259747848147735313925008357736575841632119933041 +
|
|
0.2262777846650832407783807931778013947197968935401072i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 31;
|
|
}
|
|
if (abs
|
|
(lngamma(3.600 + 0.3000i) -
|
|
(1.2985503009218817344713757767544359650274299875210727 +
|
|
0.3411543900819823748030570769218348455327276444896884i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 32;
|
|
}
|
|
if (abs
|
|
(lngamma(4.600 + 0.3000i) -
|
|
(2.582944367806232942740645241786647084583876190810680103 +
|
|
0.4242956219704236047137253915726161430638589851177078492i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 33;
|
|
}
|
|
if (abs
|
|
(lngamma(5.600 + 0.3000i) -
|
|
(4.111122815491445860748560095878127604065278239877556104 +
|
|
0.4894207853048094882972548755277837179650295466696997973i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 34;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 - 4.700i) -
|
|
(-6.309230474426685182917699027589840248465208901823736044 -
|
|
2.738444603265429259406748249023722438146218314171151425i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 35;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 - 3.700i) -
|
|
(-4.762470602521331200619631143446813610218360030381255868 -
|
|
1.307861859626688811743330143389568763790196226980935860i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 36;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 - 2.700i) -
|
|
(-3.223449159729432378435059551332376261824297133470481664 -
|
|
0.1525473639596832094518944287785664759918133343972275457i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 37;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 - 1.700i) -
|
|
(-1.699851882736550416690203691424396333903393386464266356 +
|
|
0.6188153536675997046951505463300498363352953733225308151i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 38;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 - 0.7000i) -
|
|
(-0.2316312495202586116986763277644377512618333134657045421 +
|
|
0.7368909799768367142682353753277667339824288570492360448i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 39;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 + 0.3000i) -
|
|
(0.2484000028946351584991362705412598434332854007039741619 -
|
|
0.4227177743314176403219013995119576518240065994565821579i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 40;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 + 1.300i) -
|
|
(-1.099689479936482253001126014071250387866864940802593030 -
|
|
0.7725489931464399068598744386748572974573591452933440189i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 41;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 + 2.300i) -
|
|
(-2.611386294578008388513457987969729601048026532835562114 -
|
|
0.2111094845860104400425314901146665256344806614559790152i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 42;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 + 3.300i) -
|
|
(-4.145670522984067490152016613422534092269675011415945298 +
|
|
0.8081928951523762121254890981027647840025857144095024771i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 43;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 + 4.300i) -
|
|
(-5.689842576036527320491763306963824853139907301029281610 +
|
|
2.137677242374957442527694027866746053575410791317320138i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 44;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 + 5.300i) -
|
|
(-7.239654605052715210182073623536904206104308839659326676 +
|
|
3.702857758072432142072497796069521049678127217607403327i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 45;
|
|
}
|
|
if (abs
|
|
(lngamma(-4.400 - 4.700i) -
|
|
(-14.73413592903136179653960750100174060012531669119348359 +
|
|
7.340768981905845672138265648506833394433043135824981559i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 46;
|
|
}
|
|
if (abs
|
|
(lngamma(-3.400 - 3.700i) -
|
|
(-10.55018529022399813119005433743831737900085357229525796 +
|
|
6.763336971725381912118912702208512629733112628981673298i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 47;
|
|
}
|
|
if (abs
|
|
(lngamma(-2.400 - 2.700i) -
|
|
(-6.624262018571684573249747079902924251345023570085621326 +
|
|
5.911914743873792313808731773611192661709672638901754910i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 48;
|
|
}
|
|
if (abs
|
|
(lngamma(-1.400 - 1.700i) -
|
|
(-3.046912030520906458689035477846643788289090086345259335 +
|
|
4.680423062668151424886705499811285399248102868605621987i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 49;
|
|
}
|
|
if (abs
|
|
(lngamma(-0.4000 - 0.7000i) -
|
|
(-0.01623979147403148300780826047582666582616647435129398527 +
|
|
2.826833421018256285271011446520969788549353956082297248i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 50;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 + 0.3000i) -
|
|
(0.2484000028946351584991362705412598434332854007039741619 -
|
|
0.4227177743314176403219013995119576518240065994565821579i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 51;
|
|
}
|
|
if (abs
|
|
(lngamma(1.600 + 1.300i) -
|
|
(-0.7407695833613238477853561156238169815169605175974563292 +
|
|
0.3658395580779188724109027663961707196451841638334886679i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 52;
|
|
}
|
|
if (abs
|
|
(lngamma(2.600 + 2.300i) -
|
|
(-0.7153017561016750689453931991025219163388411460412682694 +
|
|
2.067498782269003991801228117457494590355245722719424742i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 53;
|
|
}
|
|
if (abs
|
|
(lngamma(3.600 + 3.300i) -
|
|
(-0.2006290139452759775010107586460283514303264993274887714 +
|
|
4.221969149213679168621678150696738907045553787288427746i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 54;
|
|
}
|
|
if (abs
|
|
(lngamma(4.600 + 4.300i) -
|
|
(0.6404767304085869581018213364351326853699331839312207180 +
|
|
6.685149323469513776483323494807052342570441936959315816i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 55;
|
|
}
|
|
if (abs
|
|
(lngamma(5.600 + 5.300i) -
|
|
(1.727112476786098959996727579157495580048033035060833670 +
|
|
9.383383918093155327986445451264543368751338171298232916i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 56;
|
|
}
|
|
if (abs
|
|
(lngamma(55.60 + 0.3000i) -
|
|
(166.7215150367733897769155930653789348483780044274716818 +
|
|
1.202750513929718332820270669742686561426457642272968981i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 57;
|
|
}
|
|
if (abs
|
|
(lngamma(56.60 + 0.3000i) -
|
|
(170.7397127945179968376917410624766834622909691036136375 +
|
|
1.208146145021640303895693686064781770317635078049891748i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 58;
|
|
}
|
|
if (abs
|
|
(lngamma(57.60 + 0.3000i) -
|
|
(174.7757358264026770962028712327193919190938819848539820 +
|
|
1.213446448743774292811195505423481449339002192187714949i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 59;
|
|
}
|
|
if (abs
|
|
(lngamma(58.60 + 0.3000i) -
|
|
(178.8292719572886165808686582437464130998008894472168186 +
|
|
1.218654734982846161251085553080214761347285268088604785i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 60;
|
|
}
|
|
if (abs
|
|
(lngamma(59.60 + 0.3000i) -
|
|
(182.9000197581041057641595126649840680882966589651420637 +
|
|
1.223774144183534973445316592347337056808910609419286930i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 61;
|
|
}
|
|
if (abs
|
|
(lngamma(60.60 + 0.3000i) -
|
|
(186.9876880003631981031020807195926428903734785341818284 +
|
|
1.228807658719925269995511830298415601718771597558190350i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 62;
|
|
}
|
|
if (abs
|
|
(lngamma(61.60 + 0.3000i) -
|
|
(191.0919951469889337316641602771633017764510692037723749 +
|
|
1.233758113328768712483862353815791968059294457847368072i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 63;
|
|
}
|
|
if (abs
|
|
(lngamma(62.60 + 0.3000i) -
|
|
(195.2126688764702481772276457650023207176714432948785485 +
|
|
1.238628204695931980600482702688969918429374403006592554i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 64;
|
|
}
|
|
if (abs
|
|
(lngamma(63.60 + 0.3000i) -
|
|
(199.3494456376687238313417632202369605922807314239672719 +
|
|
1.243420500277190605198320894289870930154643596582155076i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 65;
|
|
}
|
|
if (abs
|
|
(lngamma(64.60 + 0.3000i) -
|
|
(203.5020702328465376706204035728796350972376926574607893 +
|
|
1.248137446425596312819515029227444652080011390838575181i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 66;
|
|
}
|
|
if (abs
|
|
(lngamma(65.60 + 0.3000i) -
|
|
(207.6702954267142863859185793548246421433863939380928954 +
|
|
1.252781375889819416329161991660565854615382764835522506i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 67;
|
|
}
|
|
if (abs
|
|
(lngamma(55.60 - 4.700i) -
|
|
(166.5221258272035253961542734005976077004749775938844000 -
|
|
18.84875483296568553194454925345602004591801239160222174i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 68;
|
|
}
|
|
if (abs
|
|
(lngamma(56.60 - 3.700i) -
|
|
(170.6185921690853207517443064939778892985245375960964842 -
|
|
14.90313021223193465377855573208445845565931668639004077i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 69;
|
|
}
|
|
if (abs
|
|
(lngamma(57.60 - 2.700i) -
|
|
(174.7127139121008307648437631979262499901446251937177073 -
|
|
10.92201102864604767334040466047947450750373806537116051i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 70;
|
|
}
|
|
if (abs
|
|
(lngamma(58.60 - 1.700i) -
|
|
(178.8051797102056562439362100160978710660289490095968327 -
|
|
6.905945104548951236229262516275118301863000955218208856i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 71;
|
|
}
|
|
if (abs
|
|
(lngamma(59.60 - 0.7000i) -
|
|
(182.8966358377199778625865269072085032936485484956150669 -
|
|
2.855486362253577342667404413778192112579790386732841204i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 72;
|
|
}
|
|
if (abs
|
|
(lngamma(60.60 + 0.3000i) -
|
|
(186.9876880003631981031020807195926428903734785341818284 +
|
|
1.228807658719925269995511830298415601718771597558190350i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 73;
|
|
}
|
|
if (abs
|
|
(lngamma(61.60 + 1.300i) -
|
|
(191.0789031896982469942903294770974306494712752019213395 +
|
|
5.346377998474074192830409565498522421021695288142347615i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 74;
|
|
}
|
|
if (abs
|
|
(lngamma(62.60 + 2.300i) -
|
|
(195.1708115544608858783580589279983618518227865792619427 +
|
|
9.496666208022148051357709844128014322980249562957453155i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 75;
|
|
}
|
|
if (abs
|
|
(lngamma(63.60 + 3.300i) -
|
|
(199.2639082667972359747356775354901044881033064193665592 +
|
|
13.67911603585439751926438073480939520547347569839795064i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 76;
|
|
}
|
|
if (abs
|
|
(lngamma(64.60 + 4.300i) -
|
|
(203.3586553654963869814883298543618854726441450377694569 +
|
|
17.89317489050227754715433149549722038188972541358048335i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 77;
|
|
}
|
|
if (abs
|
|
(lngamma(65.60 + 5.300i) -
|
|
(207.4554835618873492047512087924156663776620358356581503 +
|
|
22.13829509931977678201875089030163451926720764548437834i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 78;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 + 55.30i) -
|
|
(-85.54482235577983941284251852323648610691188392673393393 +
|
|
166.7640845362830899082977628513038941147191508645382670i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 79;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 + 56.30i) -
|
|
(-87.11382647385499402990266927218873826677912515510914330 +
|
|
170.7858332456548897964755419202916477033408200711519690i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 80;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 + 57.30i) -
|
|
(-88.68286214812485690627962462529848906043953388486922638 +
|
|
174.8253452895478184840703539752269094932785103410249518i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 81;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 + 58.30i) -
|
|
(-90.25192828651651583800480958344256221682554088740576313 +
|
|
178.8823106163841131771861511088137077830986146286084489i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 82;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 + 59.30i) -
|
|
(-91.82102385268587759734139136217993540696936010920994984 +
|
|
182.9564298132977973838333574465352695792546867284831679i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 83;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 + 60.30i) -
|
|
(-93.39014786228910598458529398231928177449383105033168028 +
|
|
187.0474135677690289293542062291360648608774972285628443i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 84;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 + 61.30i) -
|
|
(-94.95929937956076993888890535139227785932447324700640489 +
|
|
191.1549821649831349987910547767822679603735412036380108i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 85;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 + 62.30i) -
|
|
(-96.52847751416891464599424930795884732518087496093651555 +
|
|
195.2788650179992458972186470030422322640959550214072444i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 86;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 + 63.30i) -
|
|
(-98.09768141832058996231194071903760307280235519603364210 +
|
|
199.4188002280943140128727971292337826315387363387763786i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 87;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 + 64.30i) -
|
|
(-99.66691028409427522125385963825011409754630863598190917 +
|
|
203.5745341728981030650825963445356527935331129342248469i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 88;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 + 65.30i) -
|
|
(-101.2361633409781854893699037629524761308029390440175099 +
|
|
207.7458211201573236805249632667291754315339341665724958i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 89;
|
|
}
|
|
if (abs
|
|
(lngamma(55.60 + 60.30i) -
|
|
(138.3405218869058217717201182836422027677382184890964165 +
|
|
250.9485307086751713133102893231808151265549690071705472i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 90;
|
|
}
|
|
if (abs
|
|
(lngamma(56.60 + 60.30i) -
|
|
(142.7474976121018701984157500679190442966110797769323173 +
|
|
251.7744588650459198825346353772080509751313819470548658i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 91;
|
|
}
|
|
if (abs
|
|
(lngamma(57.60 + 60.30i) -
|
|
(147.1627435319602425515209166358781832064023544924212637 +
|
|
252.5914974493805839443768868968642526869013797892608722i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 92;
|
|
}
|
|
if (abs
|
|
(lngamma(58.60 + 60.30i) -
|
|
(151.5862689029682042031606617640450220740985775964639233 +
|
|
253.3997923739994162421416717294147634900873392644324912i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 93;
|
|
}
|
|
if (abs
|
|
(lngamma(59.60 + 60.30i) -
|
|
(156.0180803184689022095120622630277425180433295653817951 +
|
|
254.1994872924291535134537002289372877256760561545266240i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 94;
|
|
}
|
|
if (abs
|
|
(lngamma(60.60 + 60.30i) -
|
|
(160.4581818322128207752571131620498333645831099884594593 +
|
|
254.9907235879958949246830907372060458378867915677707498i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 95;
|
|
}
|
|
if (abs
|
|
(lngamma(61.60 + 60.30i) -
|
|
(164.9065750781912363906196189745577497508505165621357938 +
|
|
255.7736403669080425654455012237246051402306640891736322i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 96;
|
|
}
|
|
if (abs
|
|
(lngamma(62.60 + 60.30i) -
|
|
(169.3632593867220799863942253592790131010186217605278241 +
|
|
256.5483744554910528044048617005478717965073680654042053i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 97;
|
|
}
|
|
if (abs
|
|
(lngamma(63.60 + 60.30i) -
|
|
(173.8282318967764198928263540479369804154959334380883398 +
|
|
257.3150604012511380535676929646281795055983167823336193i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 98;
|
|
}
|
|
if (abs
|
|
(lngamma(64.60 + 60.30i) -
|
|
(178.3014876645497005489995740718100489155558324227755847 +
|
|
258.0738304774605436591436026066009539042787457216911291i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 99;
|
|
}
|
|
if (abs
|
|
(lngamma(65.60 + 60.30i) -
|
|
(182.7830197682960267239662260557525833694506977039319737 +
|
|
258.8248146909724805417993325211754807069936951454932977i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 100;
|
|
}
|
|
if (abs
|
|
(lngamma(55.60 + 55.30i) -
|
|
(142.3862162791589253462657451176275726003857264651343509 +
|
|
229.0474972316203435288188174128389032017308276896396827i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 101;
|
|
}
|
|
if (abs
|
|
(lngamma(56.60 + 56.30i) -
|
|
(145.9655713474689753168556009847734887663033552824290632 +
|
|
234.2012259525622513896404861908422505950646506577988340i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 102;
|
|
}
|
|
if (abs
|
|
(lngamma(57.60 + 57.30i) -
|
|
(149.5627523253413003508200851967083007076485608754907532 +
|
|
239.3727177204530395107173394215426561501560159557014103i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 103;
|
|
}
|
|
if (abs
|
|
(lngamma(58.60 + 58.30i) -
|
|
(153.1774470047839472501216057736005131302626263510371392 +
|
|
244.5616624984797644536433102063654140139237547865421532i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 104;
|
|
}
|
|
if (abs
|
|
(lngamma(59.60 + 59.30i) -
|
|
(156.8093539260984043245770025957276995010069796775703177 +
|
|
249.7677608875474964335171539461488545902215228674008981i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 105;
|
|
}
|
|
if (abs
|
|
(lngamma(60.60 + 60.30i) -
|
|
(160.4581818322128207752571131620498333645831099884594593 +
|
|
254.9907235879958949246830907372060458378867915677707498i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 106;
|
|
}
|
|
if (abs
|
|
(lngamma(61.60 + 61.30i) -
|
|
(164.1236491593380218382957487779642572534385362007999916 +
|
|
260.2302708970324395553848679531333038493595454481482560i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 107;
|
|
}
|
|
if (abs
|
|
(lngamma(62.60 + 62.30i) -
|
|
(167.8054835609733823774016164868506426238263526697353479 +
|
|
265.4861322389681286058365065491944749198017327500214219i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 108;
|
|
}
|
|
if (abs
|
|
(lngamma(63.60 + 63.30i) -
|
|
(171.5034214625769205528980449555097665172285302158028025 +
|
|
270.7580457256222186188843213325906832500862444373572311i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 109;
|
|
}
|
|
if (abs
|
|
(lngamma(64.60 + 64.30i) -
|
|
(175.2172076444693933495200678808489471651335658562522069 +
|
|
276.0457577445122795003295082894754935609216218032287116i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 110;
|
|
}
|
|
if (abs
|
|
(lngamma(65.60 + 65.30i) -
|
|
(178.9465948507696967449494536146172974534191430062324139 +
|
|
281.3490225726683461623186324992570909685317567794418009i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 111;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 + 4.700i) -
|
|
(-6.309230474426685182917699027589840248465208901823736044 +
|
|
2.738444603265429259406748249023722438146218314171151425i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 112;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 + 3.700i) -
|
|
(-4.762470602521331200619631143446813610218360030381255868 +
|
|
1.307861859626688811743330143389568763790196226980935860i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 113;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 + 2.700i) -
|
|
(-3.223449159729432378435059551332376261824297133470481664 +
|
|
0.1525473639596832094518944287785664759918133343972275457i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 114;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 + 1.700i) -
|
|
(-1.699851882736550416690203691424396333903393386464266356 -
|
|
0.6188153536675997046951505463300498363352953733225308151i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 115;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 + 0.7000i) -
|
|
(-0.2316312495202586116986763277644377512618333134657045421 -
|
|
0.7368909799768367142682353753277667339824288570492360448i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 116;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 - 0.3000i) -
|
|
(0.2484000028946351584991362705412598434332854007039741619 +
|
|
0.4227177743314176403219013995119576518240065994565821579i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 117;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 - 1.300i) -
|
|
(-1.099689479936482253001126014071250387866864940802593030 +
|
|
0.7725489931464399068598744386748572974573591452933440189i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 118;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 - 2.300i) -
|
|
(-2.611386294578008388513457987969729601048026532835562114 +
|
|
0.2111094845860104400425314901146665256344806614559790152i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 119;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 - 3.300i) -
|
|
(-4.145670522984067490152016613422534092269675011415945298 -
|
|
0.8081928951523762121254890981027647840025857144095024771i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 120;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 - 4.300i) -
|
|
(-5.689842576036527320491763306963824853139907301029281610 -
|
|
2.137677242374957442527694027866746053575410791317320138i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 121;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 - 5.300i) -
|
|
(-7.239654605052715210182073623536904206104308839659326676 -
|
|
3.702857758072432142072497796069521049678127217607403327i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 122;
|
|
}
|
|
if (abs
|
|
(lngamma(-4.400 + 4.700i) -
|
|
(-14.73413592903136179653960750100174060012531669119348359 -
|
|
7.340768981905845672138265648506833394433043135824981559i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 123;
|
|
}
|
|
if (abs
|
|
(lngamma(-3.400 + 3.700i) -
|
|
(-10.55018529022399813119005433743831737900085357229525796 -
|
|
6.763336971725381912118912702208512629733112628981673298i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 124;
|
|
}
|
|
if (abs
|
|
(lngamma(-2.400 + 2.700i) -
|
|
(-6.624262018571684573249747079902924251345023570085621326 -
|
|
5.911914743873792313808731773611192661709672638901754910i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 125;
|
|
}
|
|
if (abs
|
|
(lngamma(-1.400 + 1.700i) -
|
|
(-3.046912030520906458689035477846643788289090086345259335 -
|
|
4.680423062668151424886705499811285399248102868605621987i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 126;
|
|
}
|
|
if (abs
|
|
(lngamma(-0.4000 + 0.7000i) -
|
|
(-0.01623979147403148300780826047582666582616647435129398527 -
|
|
2.826833421018256285271011446520969788549353956082297248i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 127;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 - 0.3000i) -
|
|
(0.2484000028946351584991362705412598434332854007039741619 +
|
|
0.4227177743314176403219013995119576518240065994565821579i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 128;
|
|
}
|
|
if (abs
|
|
(lngamma(1.600 - 1.300i) -
|
|
(-0.7407695833613238477853561156238169815169605175974563292 -
|
|
0.3658395580779188724109027663961707196451841638334886679i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 129;
|
|
}
|
|
if (abs
|
|
(lngamma(2.600 - 2.300i) -
|
|
(-0.7153017561016750689453931991025219163388411460412682694 -
|
|
2.067498782269003991801228117457494590355245722719424742i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 130;
|
|
}
|
|
if (abs
|
|
(lngamma(3.600 - 3.300i) -
|
|
(-0.2006290139452759775010107586460283514303264993274887714 -
|
|
4.221969149213679168621678150696738907045553787288427746i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 131;
|
|
}
|
|
if (abs
|
|
(lngamma(4.600 - 4.300i) -
|
|
(0.6404767304085869581018213364351326853699331839312207180 -
|
|
6.685149323469513776483323494807052342570441936959315816i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 132;
|
|
}
|
|
if (abs
|
|
(lngamma(5.600 - 5.300i) -
|
|
(1.727112476786098959996727579157495580048033035060833670 -
|
|
9.383383918093155327986445451264543368751338171298232916i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 133;
|
|
}
|
|
if (abs
|
|
(lngamma(55.60 - 0.3000i) -
|
|
(166.7215150367733897769155930653789348483780044274716818 -
|
|
1.202750513929718332820270669742686561426457642272968981i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 134;
|
|
}
|
|
if (abs
|
|
(lngamma(56.60 - 0.3000i) -
|
|
(170.7397127945179968376917410624766834622909691036136375 -
|
|
1.208146145021640303895693686064781770317635078049891748i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 135;
|
|
}
|
|
if (abs
|
|
(lngamma(57.60 - 0.3000i) -
|
|
(174.7757358264026770962028712327193919190938819848539820 -
|
|
1.213446448743774292811195505423481449339002192187714949i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 136;
|
|
}
|
|
if (abs
|
|
(lngamma(58.60 - 0.3000i) -
|
|
(178.8292719572886165808686582437464130998008894472168186 -
|
|
1.218654734982846161251085553080214761347285268088604785i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 137;
|
|
}
|
|
if (abs
|
|
(lngamma(59.60 - 0.3000i) -
|
|
(182.9000197581041057641595126649840680882966589651420637 -
|
|
1.223774144183534973445316592347337056808910609419286930i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 138;
|
|
}
|
|
if (abs
|
|
(lngamma(60.60 - 0.3000i) -
|
|
(186.9876880003631981031020807195926428903734785341818284 -
|
|
1.228807658719925269995511830298415601718771597558190350i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 139;
|
|
}
|
|
if (abs
|
|
(lngamma(61.60 - 0.3000i) -
|
|
(191.0919951469889337316641602771633017764510692037723749 -
|
|
1.233758113328768712483862353815791968059294457847368072i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 140;
|
|
}
|
|
if (abs
|
|
(lngamma(62.60 - 0.3000i) -
|
|
(195.2126688764702481772276457650023207176714432948785485 -
|
|
1.238628204695931980600482702688969918429374403006592554i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 141;
|
|
}
|
|
if (abs
|
|
(lngamma(63.60 - 0.3000i) -
|
|
(199.3494456376687238313417632202369605922807314239672719 -
|
|
1.243420500277190605198320894289870930154643596582155076i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 142;
|
|
}
|
|
if (abs
|
|
(lngamma(64.60 - 0.3000i) -
|
|
(203.5020702328465376706204035728796350972376926574607893 -
|
|
1.248137446425596312819515029227444652080011390838575181i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 143;
|
|
}
|
|
if (abs
|
|
(lngamma(65.60 - 0.3000i) -
|
|
(207.6702954267142863859185793548246421433863939380928954 -
|
|
1.252781375889819416329161991660565854615382764835522506i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 144;
|
|
}
|
|
if (abs
|
|
(lngamma(55.60 - 4.700i) -
|
|
(166.5221258272035253961542734005976077004749775938844000 -
|
|
18.84875483296568553194454925345602004591801239160222174i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 145;
|
|
}
|
|
if (abs
|
|
(lngamma(56.60 - 3.700i) -
|
|
(170.6185921690853207517443064939778892985245375960964842 -
|
|
14.90313021223193465377855573208445845565931668639004077i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 146;
|
|
}
|
|
if (abs
|
|
(lngamma(57.60 - 2.700i) -
|
|
(174.7127139121008307648437631979262499901446251937177073 -
|
|
10.92201102864604767334040466047947450750373806537116051i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 147;
|
|
}
|
|
if (abs
|
|
(lngamma(58.60 - 1.700i) -
|
|
(178.8051797102056562439362100160978710660289490095968327 -
|
|
6.905945104548951236229262516275118301863000955218208856i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 148;
|
|
}
|
|
if (abs
|
|
(lngamma(59.60 - 0.7000i) -
|
|
(182.8966358377199778625865269072085032936485484956150669 -
|
|
2.855486362253577342667404413778192112579790386732841204i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 149;
|
|
}
|
|
if (abs
|
|
(lngamma(60.60 + 0.3000i) -
|
|
(186.9876880003631981031020807195926428903734785341818284 +
|
|
1.228807658719925269995511830298415601718771597558190350i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 150;
|
|
}
|
|
if (abs
|
|
(lngamma(61.60 + 1.300i) -
|
|
(191.0789031896982469942903294770974306494712752019213395 +
|
|
5.346377998474074192830409565498522421021695288142347615i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 151;
|
|
}
|
|
if (abs
|
|
(lngamma(62.60 + 2.300i) -
|
|
(195.1708115544608858783580589279983618518227865792619427 +
|
|
9.496666208022148051357709844128014322980249562957453155i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 152;
|
|
}
|
|
if (abs
|
|
(lngamma(63.60 + 3.300i) -
|
|
(199.2639082667972359747356775354901044881033064193665592 +
|
|
13.67911603585439751926438073480939520547347569839795064i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 153;
|
|
}
|
|
if (abs
|
|
(lngamma(64.60 + 4.300i) -
|
|
(203.3586553654963869814883298543618854726441450377694569 +
|
|
17.89317489050227754715433149549722038188972541358048335i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 154;
|
|
}
|
|
if (abs
|
|
(lngamma(65.60 + 5.300i) -
|
|
(207.4554835618873492047512087924156663776620358356581503 +
|
|
22.13829509931977678201875089030163451926720764548437834i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 155;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 - 55.30i) -
|
|
(-85.54482235577983941284251852323648610691188392673393393 -
|
|
166.7640845362830899082977628513038941147191508645382670i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 156;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 - 56.30i) -
|
|
(-87.11382647385499402990266927218873826677912515510914330 -
|
|
170.7858332456548897964755419202916477033408200711519690i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 157;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 - 57.30i) -
|
|
(-88.68286214812485690627962462529848906043953388486922638 -
|
|
174.8253452895478184840703539752269094932785103410249518i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 158;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 - 58.30i) -
|
|
(-90.25192828651651583800480958344256221682554088740576313 -
|
|
178.8823106163841131771861511088137077830986146286084489i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 159;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 - 59.30i) -
|
|
(-91.82102385268587759734139136217993540696936010920994984 -
|
|
182.9564298132977973838333574465352695792546867284831679i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 160;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 - 60.30i) -
|
|
(-93.39014786228910598458529398231928177449383105033168028 -
|
|
187.0474135677690289293542062291360648608774972285628443i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 161;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 - 61.30i) -
|
|
(-94.95929937956076993888890535139227785932447324700640489 -
|
|
191.1549821649831349987910547767822679603735412036380108i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 162;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 - 62.30i) -
|
|
(-96.52847751416891464599424930795884732518087496093651555 -
|
|
195.2788650179992458972186470030422322640959550214072444i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 163;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 - 63.30i) -
|
|
(-98.09768141832058996231194071903760307280235519603364210 -
|
|
199.4188002280943140128727971292337826315387363387763786i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 164;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 - 64.30i) -
|
|
(-99.66691028409427522125385963825011409754630863598190917 -
|
|
203.5745341728981030650825963445356527935331129342248469i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 165;
|
|
}
|
|
if (abs
|
|
(lngamma(0.6000 - 65.30i) -
|
|
(-101.2361633409781854893699037629524761308029390440175099 -
|
|
207.7458211201573236805249632667291754315339341665724958i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 166;
|
|
}
|
|
if (abs
|
|
(lngamma(55.60 - 60.30i) -
|
|
(138.3405218869058217717201182836422027677382184890964165 -
|
|
250.9485307086751713133102893231808151265549690071705472i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 167;
|
|
}
|
|
if (abs
|
|
(lngamma(56.60 - 60.30i) -
|
|
(142.7474976121018701984157500679190442966110797769323173 -
|
|
251.7744588650459198825346353772080509751313819470548658i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 168;
|
|
}
|
|
if (abs
|
|
(lngamma(57.60 - 60.30i) -
|
|
(147.1627435319602425515209166358781832064023544924212637 -
|
|
252.5914974493805839443768868968642526869013797892608722i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 169;
|
|
}
|
|
if (abs
|
|
(lngamma(58.60 - 60.30i) -
|
|
(151.5862689029682042031606617640450220740985775964639233 -
|
|
253.3997923739994162421416717294147634900873392644324912i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 170;
|
|
}
|
|
if (abs
|
|
(lngamma(59.60 - 60.30i) -
|
|
(156.0180803184689022095120622630277425180433295653817951 -
|
|
254.1994872924291535134537002289372877256760561545266240i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 171;
|
|
}
|
|
if (abs
|
|
(lngamma(60.60 - 60.30i) -
|
|
(160.4581818322128207752571131620498333645831099884594593 -
|
|
254.9907235879958949246830907372060458378867915677707498i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 172;
|
|
}
|
|
if (abs
|
|
(lngamma(61.60 - 60.30i) -
|
|
(164.9065750781912363906196189745577497508505165621357938 -
|
|
255.7736403669080425654455012237246051402306640891736322i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 173;
|
|
}
|
|
if (abs
|
|
(lngamma(62.60 - 60.30i) -
|
|
(169.3632593867220799863942253592790131010186217605278241 -
|
|
256.5483744554910528044048617005478717965073680654042053i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 174;
|
|
}
|
|
if (abs
|
|
(lngamma(63.60 - 60.30i) -
|
|
(173.8282318967764198928263540479369804154959334380883398 -
|
|
257.3150604012511380535676929646281795055983167823336193i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 175;
|
|
}
|
|
if (abs
|
|
(lngamma(64.60 - 60.30i) -
|
|
(178.3014876645497005489995740718100489155558324227755847 -
|
|
258.0738304774605436591436026066009539042787457216911291i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 176;
|
|
}
|
|
if (abs
|
|
(lngamma(65.60 - 60.30i) -
|
|
(182.7830197682960267239662260557525833694506977039319737 -
|
|
258.8248146909724805417993325211754807069936951454932977i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 177;
|
|
}
|
|
if (abs
|
|
(lngamma(55.60 - 55.30i) -
|
|
(142.3862162791589253462657451176275726003857264651343509 -
|
|
229.0474972316203435288188174128389032017308276896396827i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 178;
|
|
}
|
|
if (abs
|
|
(lngamma(56.60 - 56.30i) -
|
|
(145.9655713474689753168556009847734887663033552824290632 -
|
|
234.2012259525622513896404861908422505950646506577988340i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 179;
|
|
}
|
|
if (abs
|
|
(lngamma(57.60 - 57.30i) -
|
|
(149.5627523253413003508200851967083007076485608754907532 -
|
|
239.3727177204530395107173394215426561501560159557014103i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 180;
|
|
}
|
|
if (abs
|
|
(lngamma(58.60 - 58.30i) -
|
|
(153.1774470047839472501216057736005131302626263510371392 -
|
|
244.5616624984797644536433102063654140139237547865421532i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 181;
|
|
}
|
|
if (abs
|
|
(lngamma(59.60 - 59.30i) -
|
|
(156.8093539260984043245770025957276995010069796775703177 -
|
|
249.7677608875474964335171539461488545902215228674008981i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 182;
|
|
}
|
|
if (abs
|
|
(lngamma(60.60 - 60.30i) -
|
|
(160.4581818322128207752571131620498333645831099884594593 -
|
|
254.9907235879958949246830907372060458378867915677707498i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 183;
|
|
}
|
|
if (abs
|
|
(lngamma(61.60 - 61.30i) -
|
|
(164.1236491593380218382957487779642572534385362007999916 -
|
|
260.2302708970324395553848679531333038493595454481482560i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 184;
|
|
}
|
|
if (abs
|
|
(lngamma(62.60 - 62.30i) -
|
|
(167.8054835609733823774016164868506426238263526697353479 -
|
|
265.4861322389681286058365065491944749198017327500214219i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 185;
|
|
}
|
|
if (abs
|
|
(lngamma(63.60 - 63.30i) -
|
|
(171.5034214625769205528980449555097665172285302158028025 -
|
|
270.7580457256222186188843213325906832500862444373572311i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 186;
|
|
}
|
|
if (abs
|
|
(lngamma(64.60 - 64.30i) -
|
|
(175.2172076444693933495200678808489471651335658562522069 -
|
|
276.0457577445122795003295082894754935609216218032287116i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 187;
|
|
}
|
|
if (abs
|
|
(lngamma(65.60 - 65.30i) -
|
|
(178.9465948507696967449494536146172974534191430062324139 -
|
|
281.3490225726683461623186324992570909685317567794418009i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 188;
|
|
}
|
|
|
|
/* a large integer */
|
|
|
|
if (abs(lngamma(10 ^ 2 + 1) - (ln((10 ^ 2) !))) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 189;
|
|
}
|
|
|
|
epsilon(eps);
|
|
if (isnull(type))
|
|
t02(1);
|
|
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
define t03()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if (abs(psi(5) - 1.506117668431800472726821243) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if (!iserror(psi(-5))) {
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
if (abs(psi(-5.5) - (1.792911330399932941915445023)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 3;
|
|
}
|
|
if (abs(psi(5.5) - (1.611093148581751123733626842)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 4;
|
|
}
|
|
if (abs
|
|
(psi(5.5 + 5.5i) -
|
|
(2.005864860662911769895523042 + 0.8322301014098247099090843855i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 5;
|
|
}
|
|
if (abs
|
|
(psi(-5.5 + 5.5i) -
|
|
(2.096773951572002678986432133 + 2.400271643089053271126857721i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 6;
|
|
}
|
|
if (abs
|
|
(psi(-5.5 - 5.5i) -
|
|
(2.096773951572002678986432133 - 2.400271643089053271126857721i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 7;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
/* test 04 tests polygamma(m,z) for the following values (m==0 gets computed
|
|
* by psi()).
|
|
* Values tested against were computed with Mathematica(TM) only
|
|
* (z in the left complex half plane does not get computed yet)
|
|
*/
|
|
define t04()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if (abs(polygamma(2, 5) - (-0.048789732245114496725)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if (!iserror(polygamma(2, -5))) {
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
if (abs(polygamma(2, -5.5) - (-0.02758791070687679879)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 3;
|
|
}
|
|
if (abs(polygamma(2, 5.5) - (-0.03960894752130204297)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 4;
|
|
}
|
|
if (abs
|
|
(polygamma(2, 5.5 + 5.5i) -
|
|
(0.00163921986957704426 + 0.01803230748452131112i)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 5;
|
|
}
|
|
if (abs
|
|
(polygamma(2, -5.5 + 5.5i) -
|
|
(-0.00136603933402926677 - 0.015027048280671555719i)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 6;
|
|
}
|
|
if (abs
|
|
(polygamma(2, -5.5 - 5.5i) -
|
|
(-0.00136603933402926677 + 0.015027048280671555719i)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 7;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
/* test 05 tests hurwitzzeta(s,a) for the following values. the first two test
|
|
* if the arguments are in the right order.
|
|
* test all combinations?
|
|
*/
|
|
define t05()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if (abs(hurwitzzeta(2, 5) - (0.2213229557371153253613040555)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if (abs(hurwitzzeta(5, 2) - (0.03692775514336992633136548646)) > __CZ__eps){
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
if (abs(hurwitzzeta(2.2, 5) - (0.1363459661171646798298971735))> __CZ__eps){
|
|
epsilon(eps);
|
|
return 3;
|
|
}
|
|
if (abs(hurwitzzeta(2.2, 5.2) - (0.1294703948013920875737274341)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 4;
|
|
}
|
|
if (abs(hurwitzzeta(-2.2, 5.2) - (-43.62740512741650992650645550)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 5;
|
|
}
|
|
if (abs
|
|
(hurwitzzeta(-2.2, -5.2) -
|
|
(65.71970386778362403451264243 + 47.73828461458444658816112446i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 6;
|
|
}
|
|
if (abs
|
|
(hurwitzzeta(2.2, 5.2 + 5.6i) -
|
|
(0.038440773159665466748278144 - 0.0662501636737772199523476381i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 7;
|
|
}
|
|
if (abs
|
|
(hurwitzzeta(2.2, 5.2 - 5.6i) -
|
|
(0.038440773159665466748278144 + 0.06625016367377721995234763811i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 8;
|
|
}
|
|
if (abs
|
|
(hurwitzzeta(2.2, -5.2 + 5.6i) -
|
|
(-0.06570771621451414059240507315 -
|
|
0.02045673968185922880458837166i)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 9;
|
|
}
|
|
if (abs
|
|
(hurwitzzeta(2.2, -5.2 - 5.6i) -
|
|
(-0.06570771621451414059240507315 +
|
|
0.02045673968185922880458837166i)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 10;
|
|
}
|
|
if (abs
|
|
(hurwitzzeta(-2.2, 5.2 + 5.6i) -
|
|
(171.3023982201237034174265227 - 61.37099215219445965540875817i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 11;
|
|
}
|
|
if (abs
|
|
(hurwitzzeta(-2.2, 5.2 - 5.6i) -
|
|
(171.3023982201237034174265227 + 61.37099215219445965540875820i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 12;
|
|
}
|
|
if (abs
|
|
(hurwitzzeta(-2.2, -5.2 + 5.6i) -
|
|
(-69.18353604795857246443145272 - 231.4707567406623523296345557i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 13;
|
|
}
|
|
if (abs
|
|
(hurwitzzeta(-2.2, -5.2 - 5.6i) -
|
|
(-69.18353604795857246443145272 + 231.4707567406623523296345557i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 14;
|
|
}
|
|
if (abs
|
|
(hurwitzzeta(5.2 + 5.6i, 2.2) -
|
|
(-0.002865569533484339556271871050 +
|
|
0.0148003604570643921348488531i)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 15;
|
|
}
|
|
if (abs
|
|
(hurwitzzeta(5.2 - 5.6i, 2.2) -
|
|
(-0.002865569533484339556271871050 -
|
|
0.0148003604570643921348488531i)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 16;
|
|
}
|
|
if (abs
|
|
(hurwitzzeta(-5.2 + 5.6i, 2.2) -
|
|
(-1.837761873462765905576370048 + 3.192719531152431336748963871i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 17;
|
|
}
|
|
if (abs
|
|
(hurwitzzeta(-5.2 - 5.6i, 2.2) -
|
|
(-1.837761873462765905576346060 - 3.192719531152431336748963871i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 18;
|
|
}
|
|
|
|
if (abs
|
|
(hurwitzzeta(5.2 + 5.6i, -2.2) -
|
|
(95348834359.70315397408796804 - 162510500631.4367394107265635i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
##return 19;
|
|
}
|
|
if (abs
|
|
(hurwitzzeta(5.2 - 5.6i, -2.2) -
|
|
(0.9651349278612417712864108926 - 3.036274517135684343726981739i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 20;
|
|
}
|
|
|
|
if (abs
|
|
(hurwitzzeta(-5.2 + 5.6i, -2.2) -
|
|
(2002299780.711849103677017204 - 1543130375.266699195007479145i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
##return 21;
|
|
}
|
|
if (abs
|
|
(hurwitzzeta(-5.2 - 5.6i, -2.2) -
|
|
(-0.2104165672779048392846890114 + 1.106842659781205784424725697i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 22;
|
|
}
|
|
if (abs
|
|
(hurwitzzeta(5.2 + 5.6i, 2.2 + 2.6i) -
|
|
(0.10228577464688104933513226525 + 0.2344359367956833252781356235i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 23;
|
|
}
|
|
if (abs
|
|
(hurwitzzeta(5.2 + 5.6i, 2.2 - 2.6i) -
|
|
(-0.000005879828833971610476305738830 -
|
|
0.000001047520361040864830120054308i)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 24;
|
|
}
|
|
if (abs
|
|
(hurwitzzeta(5.2 + 5.6i, -2.2 + 2.6i) -
|
|
(330.37403168831191021183 + 207.41259747950966196661i)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
##return 25;
|
|
}
|
|
if (abs
|
|
(hurwitzzeta(5.2 + 5.6i, -2.2 - 2.6i) -
|
|
(-0.0000000696683752518857692716375 -
|
|
0.0000000517200890759579067258627i)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
##return 26;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
/* test 06 tests zeta(s)
|
|
*
|
|
* Zero with smallest imaginary part
|
|
* 1/2+14.13472514173469379045725198i 0
|
|
*/
|
|
define t06()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if (abs(zeta(2) - (1.644934066848226436472415167)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if (!iserror(zeta(1))) {
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
if (abs(zeta(3) - (1.202056903159594285399738162)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 3;
|
|
}
|
|
if (abs(zeta(-3) - (1 / 120)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 4;
|
|
}
|
|
if (abs
|
|
(zeta(5.5 + 5.6i) -
|
|
(0.985921045907062298613817 + 0.014724913951794894908415i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 5;
|
|
}
|
|
if (abs
|
|
(zeta(5.2 - 5.6i) -
|
|
(0.9829916458246897306781279065 - 0.01804690180657353497603622245i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 6;
|
|
}
|
|
if (abs
|
|
(zeta(-5.2 + 5.6i) -
|
|
(-1.101851386544252162781870264 - 0.1426833937495229821744935458i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 7;
|
|
}
|
|
if (abs
|
|
(zeta(-5.2 - 5.6i) -
|
|
(-1.101851386544252162781870264 + 0.1426833937495229821744935458i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 8;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
define t07()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if (!iserror(harmonic(0))) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if (harmonic(1) - 1 != 0) {
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
if (harmonic(3) - 11 / 6 != 0) {
|
|
epsilon(eps);
|
|
return 3;
|
|
}
|
|
if (harmonic(10) - 7381 / 2520 != 0) {
|
|
epsilon(eps);
|
|
return 4;
|
|
}
|
|
if (harmonic(100) - (14466636279520351160221518043104131447711 /
|
|
2788815009188499086581352357412492142272) != 0) {
|
|
epsilon(eps);
|
|
return 5;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
define t08()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if ((doublefactorial(10) - 3840) != 0) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
|
|
if ((doublefactorial(11) - 10395) != 0) {
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
|
|
if (abs((doublefactorial(-11) - (-1 / 945))) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 3;
|
|
}
|
|
|
|
if (!iserror(doublefactorial(-10))) {
|
|
epsilon(eps);
|
|
return 4;
|
|
}
|
|
|
|
if (abs
|
|
((doublefactorial(5.2) -
|
|
18.37288214375756118207669378072506887684550012806364822857845)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 7;
|
|
}
|
|
if (abs
|
|
((doublefactorial(-5.2) -
|
|
0.310704476688173329838586027938765271259515590892296917353047)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 8;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
define t09()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if ((stirling1(10, 0) - (0)) != 0) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if ((stirling1(0, 10) - (0)) != 0) {
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
if ((stirling1(0, 0) - (1)) != 0) {
|
|
epsilon(eps);
|
|
return 3;
|
|
}
|
|
if ((stirling1(10, 10) - (1)) != 0) {
|
|
epsilon(eps);
|
|
return 4;
|
|
}
|
|
if ((stirling1(10, 1) - (-362880)) != 0) {
|
|
epsilon(eps);
|
|
return 5;
|
|
}
|
|
if ((stirling1(10, 5) - (-269325)) != 0) {
|
|
epsilon(eps);
|
|
return 6;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
define t010()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if ((stirling2(10, 0) - (0)) != 0) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if ((stirling2(0, 10) - (0)) != 0) {
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
if ((stirling2(0, 0) - (1)) != 0) {
|
|
epsilon(eps);
|
|
return 3;
|
|
}
|
|
if ((stirling2(10, 10) - (1)) != 0) {
|
|
epsilon(eps);
|
|
return 4;
|
|
}
|
|
if ((stirling2(10, 1) - (1)) != 0) {
|
|
epsilon(eps);
|
|
return 5;
|
|
}
|
|
/*
|
|
* When an expression such as 0^(6-6) returned 0,
|
|
* then stirling2(10, 5) == 42525. However when we made9
|
|
* 0^(6-6) == 0^0 == 1, then stirling2(10, 5) == 5102999/120
|
|
* as in:
|
|
*
|
|
* if ((stirling2(10, 5) - (5102999/120)) != 0) {
|
|
* epsilon(eps);
|
|
* return 6;
|
|
* }
|
|
*/
|
|
if ((stirling2(10, 5) - 42525) != 0) {
|
|
epsilon(eps);
|
|
return 6;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
define t011()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if ((stirling2caching(10, 0) - (0)) != 0) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if ((stirling2caching(0, 10) - (0)) != 0) {
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
if ((stirling2caching(0, 0) - (1)) != 0) {
|
|
epsilon(eps);
|
|
return 3;
|
|
}
|
|
if ((stirling2caching(10, 10) - (1)) != 0) {
|
|
epsilon(eps);
|
|
return 4;
|
|
}
|
|
if ((stirling2caching(10, 1) - (1)) != 0) {
|
|
epsilon(eps);
|
|
return 5;
|
|
}
|
|
if ((stirling2caching(10, 5) - (42525)) != 0) {
|
|
epsilon(eps);
|
|
return 6;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
define t012()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if ((bell(0) - (1)) != 0) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if ((bell(1) - (1)) != 0) {
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
epsilon(eps);
|
|
if ((bell(2) - (2)) != 0) {
|
|
epsilon(eps);
|
|
return 3;
|
|
}
|
|
if ((bell(5) - (52)) != 0) {
|
|
epsilon(eps);
|
|
return 4;
|
|
}
|
|
if ((bell(10) - (115975)) != 0) {
|
|
epsilon(eps);
|
|
return 5;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
define t013()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if ((subfactorial(0) - (1)) != 0) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if ((subfactorial(1) - (0)) != 0) {
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
if ((subfactorial(10) - (1334961)) != 0) {
|
|
epsilon(eps);
|
|
return 3;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
define t014()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if ((risingfactorial(1, 0) - (1)) != 0) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if ((risingfactorial(10, 5) - (240240)) != 0) {
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
if (abs(risingfactorial(10.5, 5.5) - (1153886.265503555482030983579)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
##return 3;
|
|
}
|
|
if (abs
|
|
(risingfactorial(5.5 + 5.6i, 2.2 + 2.6i) -
|
|
(3.368463696973104283045428256 + 14.07030243790744467421234172i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 4;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
define t015()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if ((bigcatalan(0) - (1)) != 0) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if ((bigcatalan(1) - (1)) != 0) {
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
if ((bigcatalan(10) - (16796)) != 0) {
|
|
epsilon(eps);
|
|
return 3;
|
|
}
|
|
if ((bigcatalan(100) -
|
|
(896519947090131496687170070074100632420837521538745909320)) != 0) {
|
|
epsilon(eps);
|
|
return 4;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
define t016()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if ((binomial(0, 0) - (1)) != 0) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if ((binomial(1, 0) - (1)) != 0) {
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
if ((binomial(10, 5) - (252)) != 0) {
|
|
epsilon(eps);
|
|
return 3;
|
|
}
|
|
if ((binomial(100, 50) - (100891344545564193334812497256)) != 0) {
|
|
epsilon(eps);
|
|
return 4;
|
|
}
|
|
if ((binomial(1000, 500) - (comb(1000, 500))) != 0) {
|
|
epsilon(eps);
|
|
return 5;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
define t017()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
|
|
if ((factorial(20) - (2432902008176640000)) != 0) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if ((factorial(100) - (100 !)) != 0) {
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
define t018()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if ((primorial(3, 100) - (1152783981972759212376551073665878035)) != 0) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if ((primorial(0, 20000) - (pfact(20000))) != 0) {
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
if ((primorial(50, 100) - (3749562977351496827)) != 0) {
|
|
epsilon(eps);
|
|
return 3;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
define t019()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if ((toomcook3(161 !, 171 !) - (161 ! *171 !)) != 0) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
define t020()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if ((toomcook3square(161 !) - (161 ! ^2)) != 0) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
define t021()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if ((toomcook4(561 !, 571 !) - (561 ! *571 !)) != 0) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
define t022()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if ((toomcook4square(561 !) - (561 ! ^2)) != 0) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
define t023()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if ((fallingfactorial(1, 0) - (1)) != 0) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if ((fallingfactorial(10, 5) - (30240)) != 0) {
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
if (abs(fallingfactorial(10.5, 5.5) - (99161.85903301873714177523949)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 3;
|
|
}
|
|
if (abs
|
|
(fallingfactorial(5.5 + 5.6i, 2.2 + 2.6i) -
|
|
(9.29931208830258420309197062886 + 1.28691176641462072673306933720i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 4;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
define t024()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if (abs
|
|
(gammainc(10.5, 5.5) -
|
|
(1.0911054922884267714587707298319763515031034460618e6)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
|
|
if (abs
|
|
(gammainc(-10.5, 5.5) -
|
|
(4.2078651459391823080015064331563180161168802280640e-12)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
|
|
if (abs
|
|
(gammainc(-10.5, -5.5) -
|
|
(-2.6401218205477163162463853253112404396824684325226e-7 -
|
|
9.9525091595256241288827723005552353976489914201570e-7i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 3;
|
|
}
|
|
if (abs
|
|
(gammainc(1.5, .5) -
|
|
(0.71009105827755696037984229929040777357378308627454)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 4;
|
|
}
|
|
if (abs
|
|
(gammainc(1.5, -.5) -
|
|
(0.88622692545275801364908374167057259139877472806119 +
|
|
0.32085932483101833896117715124223338525178610972460i)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 5;
|
|
}
|
|
if (abs
|
|
(gammainc(-1.5, -.5) -
|
|
(2.3632718012073547030642233111215269103967326081632 +
|
|
3.9644835083455478417145204862038235291784113581824i)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 6;
|
|
}
|
|
if (abs
|
|
(gammainc(1.6 + 2.3i, 2.3 + 1.4i) -
|
|
(-0.023112977574442024349110845737131658924522434973607 +
|
|
0.070013601354006150597855752670117927127985847641410i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 7;
|
|
}
|
|
if (abs
|
|
(gammainc(-1.6 + 2.3i, 2.3 + 1.4i) -
|
|
(0.00129628045952650890786497724124399230099593819048313 +
|
|
0.00015977289383944841440851534670535231366264702893907i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 8;
|
|
}
|
|
if (abs
|
|
(gammainc(1.6 + 2.3i, -2.3 + 1.4i) -
|
|
(0.08011526555206793146266272247818512925483090324121 +
|
|
0.18864341054002800687777400618294098230871057870324i)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 9;
|
|
}
|
|
if (abs
|
|
(gammainc(-1.6 + 2.3i, -2.3 + 1.4i) -
|
|
(-0.0011066646302249434949283340601015297970855623709232 +
|
|
0.0066140667340761534747256896056105993963563038859892i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 10;
|
|
}
|
|
if (abs
|
|
(gammainc(-1.6 + 2.3i, -2.3 - 1.4i) -
|
|
(-192.26502410894853081990761345498010642885875566887 -
|
|
9.20687819570448375251655049593050937346609469761i)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 11;
|
|
}
|
|
if (abs
|
|
(gammainc(-1.6 - 2.3i, -2.3 - 1.4i) -
|
|
(-0.0011066646302249434949283340601015297970855623709232 -
|
|
0.0066140667340761534747256896056105993963563038859892i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 11;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
define t025()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if (abs
|
|
(expoint(12) - (14959.5326663975288522924618760575328096988328805595)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if (abs
|
|
(expoint(-12) -
|
|
(-4.75108182467249393259461269666144183573679127590926e-7)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
if (abs
|
|
(expoint(1.2) -
|
|
(2.44209228519265163972909726430649285323724645317842)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 3;
|
|
}
|
|
if (abs
|
|
(expoint(-1.2) -
|
|
(-0.158408436851462561424955970710861738534157976840579)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 4;
|
|
}
|
|
if (abs
|
|
(expoint(12 + 12i) -
|
|
(1705.83261134074122070523718220504604600321580158721 -
|
|
9839.85856317985996646693634577761869375870438645474i)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 5;
|
|
}
|
|
if (abs
|
|
(expoint(12 - 12i) -
|
|
(1705.83261134074122070523718220504604600321580158721 +
|
|
9839.85856317985996646693634577761869375870438645474i)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 6;
|
|
}
|
|
if (abs
|
|
(expoint(-12 + 12i) -
|
|
(-3.4169734885007076190668662199892409755505147e-7 +
|
|
3.14159259071528119035402366471290026841357196537325i)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 7;
|
|
}
|
|
if (abs
|
|
(expoint(12i) -
|
|
(-0.04978000688411367559592120873699061022711118653376 +
|
|
3.07576756832126998975847022375791405102780057904392i)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 8;
|
|
}
|
|
if (abs
|
|
(expoint(-12i) -
|
|
(-0.04978000688411367559592120873699061022711118653376 -
|
|
3.07576756832126998975847022375791405102780057904392i)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 9;
|
|
}
|
|
/* problem with checking, result is correct for more than 20 dec.
|
|
digits starting from the left */
|
|
if (abs
|
|
(expoint(120 + 12i) -
|
|
(8.56859444638801538211461026892024105606765234361709e49 -
|
|
6.74517461831409343681783273107064901497483026647260e49i)) >
|
|
__CZ__eps) {
|
|
##epsilon(eps);
|
|
##return 10;
|
|
}
|
|
if (abs
|
|
(expoint(-120 + 12i) -
|
|
(+3.14159265358979323846264338327950288419716939937511i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 11;
|
|
}
|
|
if (abs
|
|
(expoint(-120 - 12i) -
|
|
(-3.14159265358979323846264338327950288419716939937511i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 12;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
define t026()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
|
|
if (abs(erf(-120 - 12i) - (-1)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if (abs(erf(99.99) - (1)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
/* 45 dec. digits for eps=1e-50 */
|
|
if (abs(erf(9.99) - (0.9999999999999999999999999999999999999999999974468)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 3;
|
|
}
|
|
if (abs
|
|
(erf(-2.3 - 1.4i) -
|
|
(-0.99424424422056398724487886415624629344477362313756 -
|
|
0.00438943284364679943396666714992729629504347523747i)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 4;
|
|
}
|
|
if (abs(erf(-2.3) - (-0.99885682340264334853465254061923085980585130855731))
|
|
> __CZ__eps) {
|
|
epsilon(eps);
|
|
return 5;
|
|
}
|
|
if (abs(erf(2.3) - (0.99885682340264334853465254061923085980585130855731)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 6;
|
|
}
|
|
if (abs(erf(.99) - (0.83850806955536980357979023052992329627081601140813)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 7;
|
|
}
|
|
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
/* The rest of the error functions are just slight variations and get only one
|
|
test to check if they are implemented at all. */
|
|
define t027()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if (abs(erfc(.99) - (0.16149193044463019642020976947007670372918398859187))
|
|
> __CZ__eps) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
define t028()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if (abs(erfi(.99) - (1.6200569163157349040754017322766470558922229178510)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
define t029()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if (abs
|
|
(faddeeva(.99) -
|
|
(0.37527356961800734273134990254630990179418484551111 +
|
|
0.60796454197014723823608088189149188617146675891187i)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
/*
|
|
The beta function is implemented by way of the gamma function, so only one
|
|
check if it is implemented at all.
|
|
Such the author thought but had the surprise of an rounding error and had to
|
|
raise the precision internally for the beta function.
|
|
And the moral of the story is...
|
|
*/
|
|
define t030()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if (abs
|
|
(beta(1.3 + 2.4i, -4.5 - 5.6i) -
|
|
(0.000034922633369217658778094854951087306276597448077494 -
|
|
0.000016960351329535510681653275397511166236842713819260i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
define t031()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if (abs(betainc(1 / 2, 3, 2) - (5 / 16)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if (abs
|
|
(betainc(1 / 2, 3.2, 2.2) -
|
|
(0.32023348284114229739228778858728452204329664688830)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
if (abs
|
|
(betainc(1 / exp(1), 3.2, 2.2) -
|
|
(0.143501414415760044882767192140002923147960247904570923787840)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 3;
|
|
}
|
|
if (abs
|
|
(betainc(1 / exp(1), 3.2 + 2.2i, 2.2 + 3.2i) -
|
|
(0.1920631154241732316251688573913064389571283459161802570675 +
|
|
0.05732686873367104592514061113957628848615221217965454321767i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 4;
|
|
}
|
|
if (abs
|
|
(betainc(1 / exp(1), 3.2 - 2.2i, 2.2 + 3.2i) -
|
|
(-1.607827926223643076788007453936176458240169077851360442476 +
|
|
0.3252661246098073645694057662278573284778244036835313591942i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 5;
|
|
}
|
|
if (abs
|
|
(betainc(1 / exp(1), 3.2 - 2.2i, 2.2 - 3.2i) -
|
|
(0.1920631154241732316251688573913064389571283459161802570675 -
|
|
0.05732686873367104592514061113957628848615221217965454321767i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 6;
|
|
}
|
|
|
|
if (abs
|
|
(betainc(.3 + .2i, 3.2 - 2.2i, 2.2 - 3.2i) -
|
|
(0.14627145927962494526466549157120107465791647692488861570015 +
|
|
0.34598256304551640762453165549710979002810660424791884148625i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 7;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
define t032()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if (abs(bernpoly(1, 10)) - (19 / 2) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if (abs(bernpoly(10, 10)) - (379041290105 / 66) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
if (abs(bernpoly(-10, 10)) -
|
|
(0.00000000015893950304018571788968681852452102762225) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 3;
|
|
}
|
|
if (abs(bernpoly(1.1, 10)) -
|
|
(11.89799882840077795855328366923295539944336494342302) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 4;
|
|
}
|
|
if (abs(bernpoly(3, 1.1)) - (33 / 500) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 5;
|
|
}
|
|
if (abs(bernpoly(3, 1.1 + 2.2i)) - (-8.646 - 8.822i) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 6;
|
|
}
|
|
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
define t033()
|
|
{
|
|
local eps epsexp EM1;
|
|
eps = epsilon(1e-20);
|
|
/* The Omega-constant */
|
|
if (abs
|
|
(lambertw(1, 0) -
|
|
(0.567143290409783872999968662210355549753815787186512508135131)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if (abs
|
|
(lambertw(-1, 0) -
|
|
(-0.3181315052047641353126542515876645172035176138713998669223 +
|
|
1.337235701430689408901162143193710612539502138460512418876i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
if (abs(lambertw(-exp(-1), 0) - (-1)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 3;
|
|
}
|
|
/*
|
|
We have to calculate -exp(1-) with higher precision here because the
|
|
numbers we test against have been calculated with Mathematica(tm) and,
|
|
where possible, with the series, too, with epsilon = 1e-200.
|
|
*/
|
|
epsexp = epsilon(epsilon() * 1e-10);
|
|
EM1 = -exp(-1);
|
|
epsilon(epsexp);
|
|
if (abs
|
|
(lambertw(EM1 + .001, 0) -
|
|
(-0.92802015005456704876004302525492122474886334787070023086031)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 4;
|
|
}
|
|
|
|
if (abs
|
|
(lambertw(EM1 - .001, 0) -
|
|
(-0.998190161498609890007959968479276047800779184376006463826 +
|
|
0.0736719118893463857740469900181632551190421844567768514726i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 5;
|
|
}
|
|
|
|
if (abs
|
|
(lambertw_series(EM1 - .001, epsilon(), 0) -
|
|
(-0.998190161498609890007959968479276047800779184376006463826 +
|
|
0.0736719118893463857740469900181632551190421844567768514726i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 6;
|
|
}
|
|
if (abs
|
|
(lambertw(-2.2 - 3.2i, -3) -
|
|
(-1.6104280970561586263262514675217857074068306154494786722437 -
|
|
19.368888979715570028505505411206710993669557347359767961957i)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
/* Test the logarithm list, a bit different from the tests above.*/
|
|
define t034()
|
|
{
|
|
local eps sum k;
|
|
eps = epsilon(1e-20);
|
|
|
|
sum = 0;
|
|
lnseries(10000);
|
|
for (k = 1; k < 10000; k++) {
|
|
sum += lnfromseries(k);
|
|
}
|
|
|
|
if (abs(sum - lngamma(10000)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
define t035()
|
|
{
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if (abs(invbetainc(0, 1, 2) - (0)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if (abs(invbetainc(1, 1, 2) - (1)) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
if (abs
|
|
(invbetainc(.6, 2, 2) -
|
|
(0.567068922852268236254340214074933386511229358602804986856523)) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 3;
|
|
}
|
|
if (abs
|
|
(invbetainc(.6, 200, 200) -
|
|
0.50633738276018061834297937341956576111427477636401902379793) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 4;
|
|
}
|
|
if (abs
|
|
(invbetainc(.6, 200, 100) -
|
|
0.673912010450469394843418496081985274734344595591643614514860) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 5;
|
|
}
|
|
if (abs
|
|
(invbetainc(.6, 100, 200) -
|
|
0.339884769324050809456643025345905001680568878491743324211449) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 6;
|
|
}
|
|
/* Percentiles. Numbers shamelessly stolen from a question at stackoverflow */
|
|
if (abs
|
|
(invbetainc(0.025, 10008, 151744) -
|
|
0.060703546312525377697082321820950758320207425674954679415395) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 7;
|
|
}
|
|
if (abs
|
|
(invbetainc(0.5, 10008, 151744) -
|
|
0.061870690413044293003568412977601333629269461143858842860376) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 8;
|
|
}
|
|
if (abs
|
|
(invbetainc(0.975, 10008, 151744) -
|
|
0.063051707940007549704137764265896313422520123493324715525400) >
|
|
__CZ__eps) {
|
|
epsilon(eps);
|
|
return 9;
|
|
}
|
|
/* 3 sigma. But _way_ too slow. */
|
|
if (abs
|
|
(invbetainc(0.997, 10008, 151744) -
|
|
0.06353033717730117616403237097166742264875876591597) > __CZ__eps) {
|
|
epsilon(eps);
|
|
return 10;
|
|
}
|
|
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
/* Quadrature. Test values stolen, without any shame, from mpmath*/
|
|
define f(x){return sin(x);}
|
|
define t036(){
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
|
|
if( abs( quadts(0,pi()) - 2 )> __CZ__eps){
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if( abs( quadts(0,pi()) - 2 )> __CZ__eps){
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
/* every test would need an extra file
|
|
define f(x){ return 2/(x**2+1);}
|
|
define t037(){
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
|
|
if( abs( quadts(0,pinf()) - pi() )> __CZ__eps){
|
|
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if( abs( quadgl(0,pinf()) - pi() )> __CZ__eps){
|
|
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
undefine f;
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
define f(x){ return exp(-x^2);}
|
|
define t038(){
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if( abs( quadgl(ninf(),pinf()) - sqrt(pi()) )> __CZ__eps){
|
|
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if( abs( quadts(ninf(),pinf()) - sqrt(pi()) )> __CZ__eps){
|
|
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
undefine f;
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
define f(x){ return 1/x; }
|
|
define t039(){
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if( abs( quadts(1,1,mat[3]={1i,-1,-1i}) - 2i*pi() )> __CZ__eps){
|
|
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if( abs( quadgl(1,1,mat[3]={1i,-1,-1i}) - 2i*pi() )> __CZ__eps){
|
|
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
undefine f;
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
define f(x){ return abs(sin(x));}
|
|
define t040(){
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if( abs( quadts(0,2*pi(),mat[1]={pi()}) - 4 )> __CZ__eps){
|
|
|
|
epsilon(eps);
|
|
return 9;
|
|
}
|
|
if( abs( quadgl(0,2*pi(),mat[1]={pi()}) - 4 )> __CZ__eps){
|
|
|
|
epsilon(eps);
|
|
return 10;
|
|
}
|
|
undefine f;
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
*/
|
|
/* Symbolic infinities */
|
|
define t037(){
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if( !isinfinite(cinf()) ){
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
if( !isinfinite(pinf()) ){
|
|
epsilon(eps);
|
|
return 2;
|
|
}
|
|
if( !isinfinite(ninf())){
|
|
epsilon(eps);
|
|
return 3;
|
|
}
|
|
if(!iscinf(cinf()) ){
|
|
epsilon(eps);
|
|
return 4;
|
|
}
|
|
if( !ispinf(pinf())){
|
|
epsilon(eps);
|
|
return 5;
|
|
}
|
|
if(!isninf(ninf()) ){
|
|
epsilon(eps);
|
|
return 6;
|
|
}
|
|
|
|
epsilon(eps);
|
|
return 0;
|
|
}
|
|
|
|
/* */
|
|
/*define t038(){
|
|
local eps;
|
|
eps = epsilon(1e-20);
|
|
if( abs( ) - ( )> __CZ__eps){
|
|
epsilon(eps);
|
|
return 1;
|
|
}
|
|
|
|
epsilon(eps);
|
|
return 0;
|
|
}*/
|
|
|
|
|
|
/*
|
|
* The main test8900 test section harness
|
|
*
|
|
* The regress.cal calls this function as:
|
|
*
|
|
* testnum = test8900(1,, 8903);
|
|
*/
|
|
define test8900(verbose = 0, tnum, testnum = 8903)
|
|
{
|
|
local n;
|
|
local err; /* do not forget to delete! */
|
|
local i, old_errmax;
|
|
|
|
/*
|
|
* parse args
|
|
*/
|
|
n = 37; /* number of subtests */
|
|
if (isnull(verbose)) {
|
|
verbose = 0;
|
|
}
|
|
if (isnull(tnum)) {
|
|
tnum = 1; /* initial test number */
|
|
}
|
|
|
|
/*
|
|
* run just one test
|
|
*/
|
|
else {
|
|
err = eval(strcat("t0", str(tnum), "()"));
|
|
if (verbose) {
|
|
if (err) {
|
|
print "*** error", err,
|
|
": found in test8900.cal function test", strcat("t0",
|
|
str(tnum));
|
|
} else {
|
|
print "no errors in test", strcat("t0", str(tnum));
|
|
}
|
|
}
|
|
return tnum;
|
|
}
|
|
|
|
/* We will cause errors intentionally. A lot of them. */
|
|
old_errmax = errmax(-1);
|
|
|
|
/*
|
|
* test a lot of stuff
|
|
*/
|
|
for (i = 0; i < n; ++i) {
|
|
|
|
/* run a test */
|
|
err += eval(strcat("t0", str(tnum++), "()"));
|
|
|
|
if (verbose) {
|
|
if (err) {
|
|
print "*** error", err, "in test", testnum:":", strcat("t0",
|
|
str(tnum - 1), "()"),
|
|
" - ",
|
|
eval(strcat("t0", str(tnum - 1), "()"));
|
|
} else {
|
|
print testnum:": no errors in test", strcat("t0",
|
|
str(tnum - 1));
|
|
}
|
|
}
|
|
++testnum;
|
|
}
|
|
if (verbose) {
|
|
if (err) {
|
|
print "***", testnum:":", err,
|
|
"error(s) found in test8900.cal";
|
|
} else {
|
|
print testnum:":", "no errors in test8900.cal";
|
|
}
|
|
}
|
|
++testnum;
|
|
|
|
/* restore error maximum */
|
|
errmax(old_errmax);
|
|
return testnum;
|
|
}
|