\x89PNG\r\n\x1a\n\x00\x00\x00\x0DIHDR\x00\x00\x00\x01\x00 \x00\x00\x01\x08\x06\x00\x00\x00\x1F\x15\xC4\x89\x00\x00\x00 \x0AIDATx\x9Ccb\x00\x00\x00\x06\x00\x03\x1A\x05\x9D\x00\x00 \x00\x00IEND\xAE\x42\x60\x82 www.csarite.com
KUJUNTI.ID MINISH3LL
Path : /usr/share/calc/
(S)h3ll Cr3at0r :
F!le Upl0ad :

B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H

Current File : //usr/share/calc/test8900.cal


/*
 * test8900 - 8900 series of the regress.cal test suite
 *
 * Copyright (C) 2013 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 contribued 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
 * independant 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 halfplane 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;
    }
    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 shamlessly 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 erors 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;
}

© KUJUNTI.ID