diff options
-rw-r--r-- | src/elementaryFunctions/acosh/Makefile.am | 4 | ||||
-rw-r--r-- | src/elementaryFunctions/acosh/Makefile.in | 6 | ||||
-rw-r--r-- | src/elementaryFunctions/acosh/testDoubleAcosh.c | 513 | ||||
-rw-r--r-- | src/elementaryFunctions/acosh/testFloatAcosh.c | 508 |
4 files changed, 936 insertions, 95 deletions
diff --git a/src/elementaryFunctions/acosh/Makefile.am b/src/elementaryFunctions/acosh/Makefile.am index a602d700..53136350 100644 --- a/src/elementaryFunctions/acosh/Makefile.am +++ b/src/elementaryFunctions/acosh/Makefile.am @@ -11,6 +11,7 @@ ## libAcosh_la_CFLAGS = -I ../../type \ + -I $(top_builddir)/auxiliaryFunctions/includes \ -I ../includes instdir = $(top_builddir)/lib @@ -35,7 +36,9 @@ HEAD = ../includes/acosh.h #### check_INCLUDES = -I $(top_builddir)/elementaryFunctions/includes \ + -I $(top_builddir)/auxiliaryFunctions/includes \ -I $(top_builddir)/type + check_LDADD = $(top_builddir)/type/libDoubleComplex.la \ $(top_builddir)/type/libFloatComplex.la \ @@ -51,6 +54,7 @@ check_LDADD = $(top_builddir)/type/libDoubleComplex.la \ $(top_builddir)/auxiliaryFunctions/abs/libAbs.la \ $(top_builddir)/auxiliaryFunctions/pythag/libPythag.la \ $(top_builddir)/operations/multiplication/libMultiplication.la \ + $(top_builddir)/auxiliaryFunctions/isnan/libIsnan.la \ @LIBMATH@ check_PROGRAMS = testFloatAcosh testDoubleAcosh diff --git a/src/elementaryFunctions/acosh/Makefile.in b/src/elementaryFunctions/acosh/Makefile.in index db4b45c2..0d1b67df 100644 --- a/src/elementaryFunctions/acosh/Makefile.in +++ b/src/elementaryFunctions/acosh/Makefile.in @@ -79,7 +79,8 @@ am__DEPENDENCIES_1 = $(top_builddir)/type/libDoubleComplex.la \ $(top_builddir)/elementaryFunctions/lnp1m1/libLnp1m1.la \ $(top_builddir)/auxiliaryFunctions/abs/libAbs.la \ $(top_builddir)/auxiliaryFunctions/pythag/libPythag.la \ - $(top_builddir)/operations/multiplication/libMultiplication.la + $(top_builddir)/operations/multiplication/libMultiplication.la \ + $(top_builddir)/auxiliaryFunctions/isnan/libIsnan.la testDoubleAcosh_DEPENDENCIES = $(am__DEPENDENCIES_1) testDoubleAcosh_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testDoubleAcosh_CFLAGS) \ @@ -220,6 +221,7 @@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ libAcosh_la_CFLAGS = -I ../../type \ + -I $(top_builddir)/auxiliaryFunctions/includes \ -I ../includes instdir = $(top_builddir)/lib @@ -240,6 +242,7 @@ HEAD = ../includes/acosh.h # Checking Part #### check_INCLUDES = -I $(top_builddir)/elementaryFunctions/includes \ + -I $(top_builddir)/auxiliaryFunctions/includes \ -I $(top_builddir)/type check_LDADD = $(top_builddir)/type/libDoubleComplex.la \ @@ -256,6 +259,7 @@ check_LDADD = $(top_builddir)/type/libDoubleComplex.la \ $(top_builddir)/auxiliaryFunctions/abs/libAbs.la \ $(top_builddir)/auxiliaryFunctions/pythag/libPythag.la \ $(top_builddir)/operations/multiplication/libMultiplication.la \ + $(top_builddir)/auxiliaryFunctions/isnan/libIsnan.la \ @LIBMATH@ diff --git a/src/elementaryFunctions/acosh/testDoubleAcosh.c b/src/elementaryFunctions/acosh/testDoubleAcosh.c index 8dabec28..d4767612 100644 --- a/src/elementaryFunctions/acosh/testDoubleAcosh.c +++ b/src/elementaryFunctions/acosh/testDoubleAcosh.c @@ -10,71 +10,486 @@ * */ +#include <math.h> +#include "isnan.h" #include "testAcosh.h" + +#define IN {38.746443623676896095276,39.8779044859111309052,99.6399083640426397324,\ +93.207842670381069183350,6.8147667217999696731567,71.874653641134500503540,\ +65.928971720859408378601,43.781969323754310607910,95.70061699487268924713,\ +39.777786191552877426147,54.149620747193694114685,14.754852838814258575439,\ +91.972588421776890754700,41.853474546223878860474,90.448315022513270378113,\ +32.027477025985717773438,57.482325518503785133362,75.726259034126996994019,\ +32.547289272770285606384,50.125551037490367889404,26.862081931903958320618,\ +11.706684622913599014282,36.675705714151263237000,87.538864836096763610840,\ +52.483216533437371253967,76.861125137656927108765,82.899243896827101707458,\ +64.99033216387033462524,56.250627012923359870911,21.698794979602098464966,\ +93.22312804870307445526,93.5097210109233856201,97.608120972290635108948,\ +91.35094834491610527039,26.843591919168829917908,9.1870715841650962829590,\ +17.129724519327282905579,73.117265943437814712524,86.922781122848391532898,\ +1.4808017760515213012695,65.071928361430764198303,42.254429217427968978882,\ +23.262092983350157737732,31.955500133335590362549,74.261871399357914924622,\ +77.881882060319185256958,65.248953877016901969910,90.324406325817108154297,\ +86.69646182097494602203,70.879780035465955734253,69.452034076675772666931,\ +84.671579115092754364014,93.227435695007443428040,95.654127094894647598267,\ +16.239900095388293266296,12.728751823306083679199,95.707353064790368080139,\ +67.644099798053503036499,39.798104530200362205505,11.081875301897525787354,\ +50.97153154201805591583,58.446559030562639236450,25.919713405892252922058,\ +29.182348400354385375977,6.0309174004942178726196,90.43274922296404838562,\ +61.944271018728613853455,25.037935934960842132568,83.850894169881939888000,\ +82.732185069471597671509,73.220202280208468437195,29.458374157547950744629,\ +29.091028729453682899475,70.458725746721029281616,30.465652560815215110779,\ +75.730663724243640899658,73.18075490184128284454,69.053836632519960403442,\ +62.402765033766627311707,41.599050164222717285156,28.105994546785950660706,\ +5.6220385245978832244873,58.040395518764853477478,0.4246918484568595886230,\ +68.2817161548882722855,89.133544359356164932251,92.980264825746417045593,\ +28.40001545846462249756,9.885430941358208656311,41.369083430618047714233,\ +64.121548598632216453552,64.692758955061435699463,47.02662643976509571075,\ +60.481913108378648757935,67.138904659077525138855,71.394702047109603881836,\ +54.127137595787644386292,39.052018057554960250854,1.1089378502219915390015,\ +90.150084160268306732178,13.887455360963940620422,8.5074969567358493804932,\ +34.66010238043963909149,42.338709905743598937988,80.213972786441445351,\ +31.7881367169320583344,18.021041667088866233826,69.688742049038410186768,\ +35.482168616726994514465,16.12617420032620429993,75.34236568026244640350,\ +62.194181978702545166016,51.510728383436799049377,67.819245439022779464722,\ +61.666865786537528038025,70.212037675082683563232,13.621602999046444892883,\ +60.870522353798151016235,18.923167092725634574890,47.614179179072380065918,\ +17.161004850640892982483,41.371036972850561141968,15.31781828962266445160,\ +22.868881560862064361572,95.856341393664479255676,39.499193150550127029419,\ +2.500818995758891106,44.927055388689041137695,91.384086245670914649963,\ +11.012465786188840866089,74.87958460114896297455,0.7881646975874900817871,\ +23.523587780073285102844,80.106287542730569839478,65.456348611041903495789,\ +51.620832458138465881348,70.271815219894051551819,5.5151230655610561370850,\ +62.56400248967111110687,84.313133545219898223877,17.294042231515049934387,\ +41.730730701237916946411,81.875373004004359245300,25.327575206756591796875,\ +86.085468018427491188049,17.212611716240644454956,78.060937067493796348572,\ +13.735765032470226287842,0.2187759149819612503052,1.4656470157206058502197,\ +30.469974083825945854187,80.307766422629356384277,99.052629480138421058655,\ +82.85992136225104331970,87.21015579067170619965,29.531141556799411773682,\ +58.27610609121620655060,29.06773509457707405090,2.0005736034363508224,\ +71.4346818625926971436,26.664068037644028663635,51.992803346365690231323,\ +48.17320345900952816010,0.0918259844183921813965,38.418471114709973335266,\ +49.06664276495575904846,44.197808159515261650085,65.678765252232551574707,\ +10.470610717311501502991,42.787145730108022689819,75.105277216061949729919,\ +36.962236650288105010986,84.119305433705449104309,90.374342072755098342896,\ +44.184404192492365837097,1.0920032858848571777344,20.380018139258027076721,\ +85.418348293751478195190,39.327101549133658409119,97.573022358119487762451,\ +8.4199145901948213577271,23.39450428262352943420,48.397052986547350883484,\ +33.292300626635551452637,96.453859517350792884827,52.920697536319494247437,\ +7.9968032892793416976929,75.475437380373477935791,4.476350219920277596,\ +84.631874877959489822388,20.008285669609904289246,69.44785490632057189941,\ +28.204387659206986427307,79.546741675585508346558,20.281786611303687095642,\ +78.075716458261013031006,93.606285052374005317688,88.801648560911417007446,\ +33.848348213359713554382,89.761531725525856018066} + +#define RESULT {4.3500195892822599574856,4.378812333443298676627,5.2946847693089331698957,\ +5.2279502699832844925254,2.6068118507181217147206,4.968022463585481496295,\ +4.8816676362403299549442,4.4722388068202851840738,5.2543446283333992141706,\ +4.3762977630646631155287,4.6848128785767624293612,3.3835688928264802122214,\ +5.2146082054939908445590,4.4271792498758397726988,5.1978952030053422461719,\ +4.159497560939560578674,4.7445490293632399669832,5.0202285648475850621253,\ +4.1756051841813626168687,4.6075785448582253778227,3.9835162329116351465075,\ +3.1514779837977200394050,4.2950758361772223281605,5.165197419194649697261,\ +4.653549840642725143880,5.035105083560019956224,5.1107367420045859418565,\ +4.8673265089936572636020,4.7228853485288873059744,3.7698725167565876326137,\ +5.2281142583800894740875,5.2311839874435639430317,5.2740816359097371091025,\ +5.2078258853539018957690,3.982827186610214287299,2.9079691610609703644741,\ +3.5331093207527803912171,4.9851649496034715625115,5.1581342419725935144470,\ +0.9450506373811344840163,4.8685813827251553931319,4.4367163112396088564537,\ +3.8395099847061766595857,4.1572465837028591550961,5.0006994941965512424531,\ +5.0482993082581542054754,4.8712984679982609392823,5.1965242406243383754827,\ +5.1555269912574592794385,4.954082618091184997411,4.9337317049920867972901,\ +5.1318923054243690273779,5.228160467885317963521,5.2538586990129676479455,\ +3.4796690893012534040452,3.2354639460120244720542,5.2544150166005954005755,\ +4.9073526741507107473694,4.3768085901327413722584,3.0964161555968114925008,\ +4.6243182142058252281913,4.7611868033967539304285,3.9477786701409951497510,\ +4.0664175090632737052943,2.4831009250018341028010,5.1977230816033159754852,\ +4.8193171469932529760172,3.9131402651137854320496,5.1221517738388655516246,\ +5.1087193584020944570057,4.98657191625376672306,4.0758371911626332106948,\ +4.0632814774108050315249,4.9481239065017428302440,4.1094776238806378643176,\ +5.0202867341820684998766,4.9860329708595516606806,4.9279811897230469952547,\ +4.8266925606060153697285,4.421080015153528108840,4.0288134359166507536543,\ +2.4118364183807097234080,4.7542122019999739634954,0,\ +4.9167355873994562642793,5.1832514554357551617159,5.2255055264178071894321,\ +4.0392267678246307482937,2.9816410740582028893186,4.4155348942144980739499,\ +4.8538668500531736427206,4.8627367182462748473881,4.5437480774189333843083,\ +4.7954231948046981415246,4.8998553915953095838631,4.9613217960209823331752,\ +4.6843975172654603866818,4.3578777660333960497496,0.4626347638559775710121,\ +5.1945923008314265345575,3.3228343258666956927527,2.830622803369744922009,\ +4.238528249750794785200,4.438709481897562980635,5.077806047884725337838,\ +4.1519928438683244564800,3.5839165427001460351164,4.9371344840241793150426,\ +4.2619788264190443527468,3.4726281293145686568380,5.0151457380383783757338,\ +4.8233440014012511909414,4.6348430510092004652734,4.9099388325030934865367,\ +4.81482819845952114690,4.9446162371720561168331,3.3034540778469194677314,\ +4.8018287252966844746993,3.6328352359975357721567,4.556167488561304601546,\ +3.5349368514717505185274,4.41558212917596915048,3.4210967363570983224008,\ +3.8224459155669441301484,5.2559705982049909067655,4.3692671498839636967659,\ +1.5671566063449566819088,4.4980634827120455909721,5.2081885950679547292452,\ +3.0901072205487807309510,5.0089838747007107144782,0,\ +3.850698741029123794988,5.076462566530570263978,4.8744723131002718474747,\ +4.6369786693462113902342,4.9454673471881154256380,2.3923187222394570738970,\ +4.8292733779221936885051,5.127649658742538640865,3.5426723072020398497273,\ +4.424241396092424949416,5.0983081346685077406278,3.9246509637740216724922,\ +5.1484540607983912963164,3.537944651477085589164,5.0505959169093319616195,\ +3.3118225003889145696689,0,0.9310418690232507010762,\ +4.1096195393026562214800,5.0789747485012091132717,5.2887730188734272118722,\ +5.1102622536361952398920,5.1614350980940946200803,4.0783057415377843568649,\ +4.7582657239633334711471,4.0624799671967695147146,1.3172890037212539038336,\ +4.9618816771260449982606,3.9761122565887623281,4.64415999832871140285,\ +4.5678423566873336270078,0,4.3415161209508754680542,\ +4.5862227542495350718355,4.481694375737592217490,4.8778648861550966131517,\ +3.0394313734202933474648,4.4492483198356360674097,5.0119936831694982259933,\ +4.3028609023006350042806,5.1253479422290126876760,5.1970769705972195140475,\ +4.4813909798397162376205,0.4257373352329655857851,3.7070996451820255046528,\ +5.1406738437618608728030,4.3648993866947414232982,5.2737219653314042489001,\ +2.820201721217977297584,3.8451912168199942065883,4.5724793527790357217100,\ +4.1982477070823893683382,5.2621850617105074832125,4.661852422144622920541,\ +2.7682565538529817494862,5.0169105620070073570105,2.1792385497944919414692,\ +5.131423242241443638534,3.6886685835548016498819,4.9336715234659216378077,\ +4.032310316197459165721,5.0694524637856641646749,3.7022621441401133424165,\ +5.0507852459760567143121,5.2322161767096924123166,5.1795206909289932539764,\ +4.2148191048546337356129,5.19027265701442619417} + + +#define ZRIN {0.1483933464623987674713,0.5565875237807631492615,0.4628333351574838161469,\ +0.9158247429877519607544,0.0444016349501907825470,0.8175177471712231636047,\ +0.5320580708794295787811,0.2989391684532165527344,0.5029047676362097263336,\ +0.4266923693940043449402,0.3965902938507497310638,0.7440190296620130538940,\ +0.7921002809889614582062,0.5715918401256203651428,0.4155966262333095073700,\ +0.2953372262418270111084,0.1075767637230455875397,0.7572548976168036460876,\ +0.93660886352881789207,0.7694978956133127212524,0.0902581927366554737091,\ +0.4731486858800053596497,0.4765542480163276195526,0.6361737176775932312012,\ +0.5064576440490782260895,0.9049607468768954277039,0.6742701171897351741791,\ +0.3656400945037603378296,0.6837903787381947040558,0.4100628877058625221252,\ +0.3582529271952807903290,0.7118562050163745880127,0.7966963038779795169830,\ +0.9753969227895140647888,0.5733916512690484523773,0.8998429346829652786255,\ +0.5953218084760010242462,0.3765322910621762275696,0.9104355531744658946991,\ +0.1861076802015304565430,0.6715109744109213352203,0.2566455481573939323425,\ +0.9819463356398046016693,0.7608660291880369186401,0.8556561623699963092804,\ +0.8441717335954308509827,0.3884846637956798076630,0.4608103148639202117920,\ +0.8381579727865755558014,0.5278776129707694053650,0.0187810636125504970551,\ +0.2611750457435846328735,0.6092445817776024341583,0.0081067951396107673645,\ +0.0276411953382194042206,0.0158492103219032287598,0.8109004520811140537262,\ +0.2429467244073748588562,0.3353355019353330135345,0.4142854567617177963257,\ +0.5946544189937412738800,0.9080675477162003517151,0.992223232518881559372,\ +0.6239561475813388824463,0.0789771513082087039948,0.5889828568324446678162,\ +0.2523608407936990261078,0.5871062893420457839966,0.0000379872508347034454,\ +0.4244823055341839790344,0.69984475849196314812,0.4405533373355865478516,\ +0.6495711454190313816071,0.4199861017987132072449,0.2716385438106954097748,\ +0.0272838752716779708862,0.6936013107188045978546,0.1495713749900460243,\ +0.5206344048492610454559,0.9685971699655055999756,0.9657785953022539615631,\ +0.0654204180464148521423,0.9626990980468690395355,0.2655456010252237319946,\ +0.8290728745050728321075,0.1334408046677708625793,0.8514542016200721263885,\ +0.8984219655394554138184,0.1995774977840483188629,0.0138073815032839775085,\ +0.2245407640002667903900,0.3930436577647924423218,0.8261723746545612812042,\ +0.5051761353388428688049,0.5651183272711932659149,0.822583723813295364380,\ +0.9197964356280863285065,0.4713199352845549583435,0.9223483256064355373383,\ +0.2136987913399934768677,0.7260794681496918201447,0.9689361499622464179993,\ +0.8346118587069213390350,0.8257038742303848266602,0.1350833275355398654938,\ +0.7953761396929621696472,0.8992118402384221553802,0.2715440522879362106323,\ +0.9219025229103863239288,0.1750466236844658851624,0.3323095212690532207489,\ +0.9493130259215831756592,0.7118741781450808048248,0.8032329222187399864197,\ +0.3628453887067735195160,0.7530685458332300186157,0.2641473677940666675568,\ +0.9660940738394856452942,0.8041944387368857860565,0.5316947177052497863770,\ +0.1673618280328810214996,0.955579827539622783661,0.6473058252595365047455,\ +0.2645611818879842758179,0.5411860425956547260284,0.4980195099487900733948,\ +0.0190768833272159099579,0.4227291680872440338135,0.8374647037126123905182,\ +0.4151327675208449363708,0.3497115275822579860687,0.4844544250518083572388,\ +0.3347255480475723743439,0.2362121837213635444641,0.0928130256943404674530,\ +0.0737370252609252929688,0.4197955676354467868805,0.9802277712151408195496,\ +0.8419611467979848384857,0.6906680446118116378784,0.2502765958197414875031,\ +0.8266033390536904335022,0.1875236849300563335419,0.5023231171071529388428,\ +0.8916302681900560855865,0.8934147348627448081970,0.1574523574672639369965,\ +0.1629528645426034927368,0.5226223585195839405060,0.8417599620297551155090,\ +0.5858130785636603832245,0.1322202011942863464355,0.8028764897026121616364,\ +0.5250511718913912773132,0.2528006075881421566010,0.4602345135062932968140,\ +0.996287219692021608353,0.4019785309210419654846,0.1399875725619494915009,\ +0.5081327147781848907471,0.9440425024367868900299,0.9318959629163146018982,\ +0.6445578685961663722992,0.5729571748524904251099,0.4810055238194763660431,\ +0.6713787661865353584290,0.0962744313292205333710,0.8855805248022079467773,\ +0.3892059125937521457672,0.2907031057402491569519,0.4209313853643834590912,\ +0.9504273366183042526245,0.482190326321870088577,0.2289973804727196693420,\ +0.2940405677072703838348,0.6957426778972148895264,0.9139824123121798038483,\ +0.2068154653534293174744,0.6285024262033402919769,0.4031575415283441543579,\ +0.3064021435566246509552,0.3148818286135792732239,0.7400112929753959178925,\ +0.8853011503815650939941,0.788494529668241739273,0.8977585239335894584656,\ +0.0339450328610837459564,0.8802101369947195053101,0.5418177028186619281769,\ +0.9511840576305985450745,0.5574890668503940105438,0.1312845982611179351807,\ +0.9453403786756098270416,0.2518341308459639549255,0.2607447705231606960297,\ +0.1215410251170396804810,0.9136986923404037952423,0.9382542567327618598938,\ +0.3105722474865615367889,0.9309121072292327880859} + +#define ZIIN {0.5225624092854559421539,0.7617142526432871818542,0.3009174778126180171967,\ +0.1853434126824140548706,0.5148605112917721271515,0.7257346073165535926819,\ +0.7033738414756953716278,0.5664369426667690277100,0.7816161573864519596100,\ +0.3330347230657935142517,0.4017280167900025844574,0.8503915611654520034790,\ +0.41114101978018879890,0.1586530329659581184387,0.6542402538470923900604,\ +0.9449902996420860290527,0.400338994804769754410,0.9679889930412173271179,\ +0.32740902295336127281,0.8933845367282629013062,0.6218692888505756855011,\ +0.0985169494524598121643,0.7449700380675494670868,0.3134250529110431671143,\ +0.1409188793040812015533,0.3239218806847929954529,0.9958796552382409572601,\ +0.2412899602204561233521,0.4753343504853546619415,0.9194070147350430488586,\ +0.0450326460413634777069,0.8481595069169998168945,0.8928631045855581760406,\ +0.1469233212992548942566,0.4904643460176885128021,0.9986877571791410446167,\ +0.3392539476044476032257,0.8790708789601922035217,0.3107871781103312969208,\ +0.1200211457908153533936,0.0909670502878725528717,0.5804221173748373985291,\ +0.446611551102250814438,0.3501139078289270401001,0.7262432840652763843536,\ +0.3650169344618916511536,0.5597011330537497997284,0.434090383350849151611,\ +0.5082829319871962070465,0.3487796885892748832703,0.8136124997399747371674,\ +0.337404197081923484802,0.7742837746627628803253,0.0156080657616257667542,\ +0.0195691580884158611298,0.0445443131029605865479,0.4240885511972010135651,\ +0.8158838218078017234802,0.9913199446164071559906,0.5120379645377397537231,\ +0.1021917951293289661407,0.7161553995683789253235,0.4527317988686263561249,\ +0.2445004582405090332031,0.1668560453690588474274,0.9187424210831522941589,\ +0.3418669118545949459076,0.4624818544834852218628,0.0400874321348965167999,\ +0.4700120547786355018616,0.8552942494861781597137,0.3308605216443538665771,\ +0.0322206378914415836334,0.9760772576555609703064,0.0763854510150849819183,\ +0.2165335658937692642212,0.2348632332868874073029,0.1446668924763798713684,\ +0.5313451024703681468964,0.4441541358828544616699,0.5759493880905210971832,\ +0.3719177199527621269226,0.5167253850959241390228,0.5186656024307012557983,\ +0.6306529571302235126495,0.0928382659330964088440,0.5421750987879931926727,\ +0.2833826132118701934814,0.2819099412299692630768,0.1141945635899901390076,\ +0.7321730605326592922211,0.9823690224438905715942,0.8243003231473267078400,\ +0.6485677706077694892883,0.5304958778433501720428,0.6958626955747604370117,\ +0.6050392785109579563141,0.2683336613699793815613,0.5511700971983373165131,\ +0.1174971889704465866089,0.7958277617581188678741,0.4983139941468834877014,\ +0.9196587274782359600067,0.1420703046023845672607,0.389312467072159051895,\ +0.2658497532829642295837,0.9480321384035050868988,0.2326095197349786758423,\ +0.0139051643200218677521,0.9270462663844227790833,0.4878733339719474315643,\ +0.0354842916131019592285,0.6607114099897444248199,0.0879401965066790580750,\ +0.8046676008962094783783,0.212315237149596214294,0.9163186331279575824738,\ +0.9393384093418717384338,0.3174265320412814617157,0.9574301876127719879150,\ +0.7951935962773859500885,0.3240787154063582420349,0.0472964248619973659515,\ +0.1696171183139085769653,0.7654392314143478870392,0.2554624872282147407532,\ +0.1189010548405349254608,0.7469239532947540283203,0.0616608508862555027008,\ +0.1056091515347361564636,0.1581688239239156246185,0.9732552450150251388550,\ +0.8786917333491146564484,0.1824825564399361610413,0.9303942839615046977997,\ +0.4655157290399074554443,0.5399280847050249576569,0.9143392136320471763611,\ +0.0622840351425111293793,0.6500507537275552749634,0.2340233740396797657013,\ +0.3603484155610203742981,0.1917369994334876537323,0.2371335849165916442871,\ +0.4136920445598661899567,0.2661342276260256767273,0.3891090690158307552338,\ +0.6622495856136083602905,0.4503725995309650897980,0.3829893553629517555237,\ +0.1937121297232806682587,0.9629272706806659698486,0.6385000632144510746002,\ +0.2695108866319060325623,0.1092974594794213771820,0.0598662365227937698364,\ +0.1431378168053925037384,0.2944079088047146797180,0.9022735017351806163788,\ +0.9111119657754898071289,0.9847188093699514865875,0.0592310009524226188660,\ +0.5464080139063298702240,0.5080275069922208786011,0.6546461437828838825226,\ +0.9597736010327935218811,0.1577645908109843730927,0.1818120293319225311279,\ +0.4555030376650393009186,0.1048952480778098106384,0.7636235631071031093597,\ +0.1893162522464990615845,0.1596221593208611011505,0.3115166993811726570129,\ +0.2491372707299888134003,0.0469047501683235168457,0.0797643386758863925934,\ +0.3945369226858019828796,0.3254697113297879695892,0.5811151321977376937866,\ +0.1456566532142460346222,0.4704219633713364601135,0.8631705637089908123016,\ +0.1648640967905521392822,0.0801398889161646366119,0.4932156866416335105896,\ +0.4345335862599313259125,0.1079503614455461502075,0.2686753761954605579376,\ +0.7417223947122693061829,0.4086893904022872447968,0.6706044673919677734375,\ +0.4159612008370459079742,0.4766113189980387687683,0.4431825890205800533295,\ +0.6688354592770338058472,0.5834077899344265460968,0.4861929873004555702209,\ +0.715783319901674985886,0.1403244398534297943115} + +#define ZRRESULT {0.5053397031743451783825,0.7650083608446867078356,0.3289296819323739295982,\ +0.3563456766158749622342,0.4948207655225617118688,0.8169593462846268527855,\ +0.7132198900639351579755,0.5570137230416445373038,0.7685376318852206178889,\ +0.3559803193123551312560,0.4189790595413633300659,0.8813522345691391368661,\ +0.5405451162482487470484,0.1905551975849387180695,0.6493731034151291048317,\ +0.8578709195697519218626,0.3922142862720902067863,0.9642946930057294530059,\ +0.5389615746319644795648,0.9186094888728127960675,0.5890418064066422765279,\ +0.1113977102429560134267,0.7345860770241963155769,0.3799876579856086289411,\ +0.1619970506356118999935,0.51382943864194075001,0.9605702232101991366875,\ +0.2552214504374311077051,0.5588288246069162967800,0.8545155572742579863643,\ +0.0482073009402987154304,0.8701819105023789191478,0.9267094766915666692597,\ +0.3583874762657675017152,0.5394241582016752190043,1.0267057888096897677599,\ +0.3962322220487046187110,0.8200372580795054489045,0.5035682683774097556650,\ +0.1218215489911998739014,0.1217295472085216101465,0.5645974853924803360528,\ +0.6787204142960019392916,0.4641409785094591788912,0.8320374579652175528466,\ +0.5202648072575078996849,0.5635084163999081185992,0.4608376215542885900867,\ +0.6521335567127740651117,0.3901559225476997627702,0.7433295520896158192770,\ +0.3414853587252406064145,0.7876437052847802267053,0.0156079448330699189357,\ +0.0195753850507095344957,0.0445351746116087257588,0.5619901990592348628439,\ +0.7563216032216260042986,0.8953230010983072029163,0.5250759023565449989945,\ +0.1262270783291525866332,0.8463340938014771719367,0.6903512283163251161966,\ +0.3002023271844543317322,0.1665929038330317135674,0.8881085995755062523216,\ +0.3450945758035259824936,0.5168125326109850314893,0.0400767031552608649081,\ +0.4881659313644853837033,0.8717577944100705078512,0.3559191435167290418207,\ +0.0423384874325624382951,0.8962569818869624560520,0.0792669980362326609402,\ +0.2149514867261388406661,0.3084002596083564862184,0.1457610223920582370738,\ +0.5638322964331675679617,0.6681928703809085767773,0.7715309042125101379739,\ +0.3644939000586688848671,0.7241095709372292743566,0.5109856481565466790329,\ +0.7492592023075983487246,0.0935322123614654998836,0.6873609600399674945947,\ +0.4653574362777189166174,0.2834338708350941926639,0.1139584955905696417311,\ +0.6886187601911135658384,0.8966624572124947123442,0.8901159605244814976288,\ +0.6621780758434868685569,0.5739364819547106977282,0.7967040377802739881119,\ +0.7702556784014074064970,0.2963495189276508789966,0.729639913718978516677,\ +0.1199467917211827494572,0.8369585267706058928638,0.7130151705637984838049,\ +0.9564173315765011063050,0.2362741844905166255231,0.3829952297292640861492,\ +0.3854654409071321952140,0.9956878617898979877410,0.2388852521695121466916,\ +0.0357548125472270175718,0.8344528446849692748799,0.4908081134490644426016,\ +0.1072298401775326898155,0.7292248632489435333781,0.1444440063075330404896,\ +0.7618560442692507983509,0.3014073074948313002430,0.8338433864005018181231,\ +1.013809216729007589564,0.4488437286282063176657,0.9028988520348978363828,\ +0.7342748763980897486192,0.5492704923146081164020,0.0619250478958671968233,\ +0.1747947745500638971894,0.7643392221916658346714,0.2869233753851287982428,\ +0.1186438529044472750540,0.7261517086175122148717,0.1110167797262640587697,\ +0.1156665104854840142590,0.1677179018762894047168,0.9049771869312485117476,\ +0.8140692858573190804350,0.1865250841653489921601,0.8328626043313867022277,\ +0.4511026850510220786994,0.5511713324178673101272,1.0040394102716723168101,\ +0.1134432764930088655131,0.7136163206069113806862,0.2389915016256592694699,\ +0.5061510239067475991348,0.1938531425179492451161,0.267912781705172242663,\ +0.594520593176991907214,0.4421595740617755287971,0.3838580911610497414799,\ +0.6265966551277006857390,0.4892019455111443759776,0.5371648663643865395656,\ +0.2336644699290637006150,0.8580649693764487162539,0.7447932141471096390006,\ +0.30664577808112553070,0.1126796888171682081703,0.0673404850217956818526,\ +0.3780061914448271664924,0.3135468248495265064513,0.8141814149801622768621,\ +0.8656800272972641208113,1.0330415543607425199468,0.1517147576472806791426,\ +0.6107832692276639052764,0.5555300503019462432519,0.6621194316643849164805,\ +0.9359383537376269046604,0.1578266511911156633197,0.3288869400610432980336,\ +0.4688911283964798393242,0.1093517544178844447256,0.7390278072154514710235,\ +0.3915656081630794482784,0.1803516698292359499156,0.3140185989593758941751,\ +0.2570435038916802361619,0.0651252572213311814453,0.1812803236410877871787,\ +0.3918987512324060840108,0.3907169202420177067658,0.5847178774812699098007,\ +0.1522469534945809221949,0.4726351219523636792985,0.8890284419930043480207,\ +0.3043305148205690535690,0.1282404489119809976039,0.6689999411776240689775,\ +0.4220981761434796641907,0.2107039270298768085521,0.3089304668962193911597,\ +0.8825265124364938262858,0.4570764804119011315287,0.6317437032300170507426,\ +0.6289949625530589782940,0.4716158816756069738219,0.4417016096894970100806,\ +0.6297964082740089564183,0.7506329678118981441060,0.6853639001045995771122,\ +0.6844909750084481325771,0.3028385676048351293765} + +#define ZIRESULT {1.4391441245686327210507,1.130955515640670316913,1.1164484564631134144719,\ +0.5343429881094952094145,1.5313159234681512632648,0.9218282568507811802760,\ +1.1368031918334591257036,1.309961324172885133166,1.1768313149474189938104,\ +1.1581725732800560724201,1.198068547194847122128,1.0167778558643913999759,\ +0.8107284978807606234952,0.9747572654361357225028,1.2226962809307837520834,\ +1.356863284326968122073,1.4708283871101888173882,1.0424189614104724110888,\ +0.6175483783889722522176,1.012434899444895508580,1.4941377955828787360559,\ +1.081247186686038253001,1.189977918876721885155,0.9361970185325101390106,\ +1.0473314366303878575337,0.6478815708564551467674,1.103880390282215628872,\ +1.208902068619972958174,0.9405460211534443226711,1.2708555309086870810376,\ +1.2048457921815343141247,1.0386992340805454304586,0.9940470159552662332558,\ +0.4129471251607437776165,1.0483368304459323994138,0.9626808065085141752348,\ +0.9866797451792658213421,1.2893127532844186333705,0.6333368050416610106623,\ +1.3849939050391590900091,0.8412033774271403530065,1.3484185557182311043789,\ +0.6561721869869621137639,0.8152667302376208624537,0.8942162872449925803409,\ +0.7354476761871528989190,1.2302184692777484720239,1.1419032200306009627866,\ +0.8136425490751511002685,1.0585917357001826122342,1.5562281161680697749716,\ +1.3215709464122720184776,1.0936282246933759498830,1.562690430228121041267,\ +1.5431569076078051061529,1.5549621593607869662890,0.7985043985204253180754,\ +1.3827954341839958640747,1.3338048203354757603734,1.1992311317991326546917,\ +0.9398015526727905299964,0.8526323846859752420002,0.6516084904889641871151,\ +0.9312161189612270240090,1.4928235928235611407189,1.1434135639085114544145,\ +1.3304436504678796016066,1.0279557218905930326969,1.5707583700301124274290,\ +1.18264027414866035315,1.049240570305455033662,1.1438977350867394200407,\ +0.8645410048697405036577,1.272544314036070156604,1.2965854453389789036066,\ +1.5441276936419627840991,0.8474785980812834518261,1.4222542688372477037717,\ +1.1067340541491283989473,0.6658230283826037654293,0.7440600810961385258580,\ +1.509454955782236762474,0.7139904083352976993382,1.3343109319103572119047,\ +0.8754276015708571945240,1.4375430902494801266300,0.8182153660902479197503,\ +0.6279916190243797213810,1.3777792247900606525945,1.5570776874524723254467,\ +1.3896877170114805277734,1.292290381577097857502,0.9513544490495031702437,\ +1.146595322853661613749,1.0663673649265974496814,0.9066444651210990857138,\ +0.7936124351430207113367,1.1025133400691302654195,0.7646931356316959416120,\ +1.3570006423237950254901,1.0127507430242304042878,0.6984070724030820853656,\ +0.9777377069899801931285,0.6381815285628557044006,1.4447151619316793702552,\ +0.7381184252357657626931,0.9463444174447509515957,1.3036540993301888313738,\ +0.3993509460349408124458,1.4425649666003559357108,1.2703537792660923866350,\ +0.3366052452908819825339,0.9799364183556658058905,0.6519110571169279833015,\ +1.288935099739083156578,0.766834829952783847418,1.3765235555687964641436,\ +0.9026821267000586512808,0.7532458865053713870097,1.1915253215495016370085,\ +1.4398661339551832583084,0.5960292480319858698934,0.8683763627836410536887,\ +1.307183356265154250409,1.1437419441048803925298,1.0721920855425228769064,\ +1.5518517938677236500666,1.2329687641584510249260,0.5874976025749066854686,\ +1.1457409989520814797004,1.2187173974473419768572,1.2272326680013900812583,\ +1.3202499364548996307889,1.3364966855772182352524,1.5028659601895917319325,\ +1.5039244799556488185743,1.199080874147727016066,0.8850027352965960103504,\ +0.5797999065603636204003,0.9935513093218836244702,1.3250345117052622079257,\ +0.7510747251416685088543,1.3856864393507652977178,1.0646397833458374204696,\ +0.7161423103150551527918,0.6220745390646167383153,1.4237426982899421545881,\ +1.4349026977530163762253,1.0862935323189089054097,0.7475103036060971595234,\ +0.9640755596017442918821,1.4756182374730877349123,0.8992686396344509169865,\ +1.0456992348735927311765,1.316872193719026640224,1.0937098269572853581622,\ +0.3787889502350130777053,1.1777575502770252224849,1.466927792635024818679,\ +1.198998549247170863907,0.9317214709279717510526,0.3994553068013038665818,\ +0.9996993047110468433303,1.0533682169916682713762,1.1680862767422879322510,\ +1.0968093743281353003027,1.475564759332087749755,0.5739680940616843640711,\ +1.2132055498728515630091,1.277641763762892734846,1.2372616699165408515881,\ +0.4908185034943345348424,1.0764535824324550361553,1.3508749145869605179371,\ +1.282220574891209663448,0.8033914160655766245611,0.4529330910646225394345,\ +1.3777085436870080137339,0.9478851551815749010288,1.2208388985822435923723,\ +1.263077873207383738929,1.284175149159334061721,1.023436357706823729430,\ +0.5626793926847969418148,0.6728398111486185717567,0.7545922256887819257187,\ +1.5396608871785673056110,0.5335122401588628937574,1.0275094129340511805992,\ +0.8338356239168208672297,1.0426578447465559840168,1.4617456602888381222982,\ +0.6682797094798482717692,1.3426136823908161321839,1.3312882615539098907220,\ +1.4697575902556172522395,0.7877417380659905710161,0.7165102522491650915981,\ +1.3183788402186256139004,0.4738958779540429211430} + void dacoshsTest(void) { - printf(">> Double scalar\n"); - printf("dacoshs(0) = %e\n", dacoshs(0.0)); - printf("dacoshs(0.1) = %e\n", dacoshs(0.1)); - printf("dacoshs(PI) = %e\n", dacoshs(DPI)); - printf("dacoshs(PI/2) = %e\n", dacoshs(DPI/2)); - printf("dacoshs(PI/3) = %e\n", dacoshs(DPI/3)); - printf("dacoshs(PI/4) = %e\n", dacoshs(DPI/4)); - printf("dacoshs(PI/6) = %e\n", dacoshs(DPI/6)); - printf("dacoshs(-PI) = %e\n", dacoshs(-DPI)); - printf("dacoshs(-PI/2) = %e\n", dacoshs(-DPI/2)); - printf("dacoshs(-PI/3) = %e\n", dacoshs(-DPI/3)); - printf("dacoshs(-PI/4) = %e\n", dacoshs(-DPI/4)); - printf("dacoshs(-PI/6) = %e\n", dacoshs(-DPI/6)); + double In[]=IN; + double Res[]=RESULT; + double out; + int i = 0; + + for (i=0;i<200;i++){ + if (In[i]<1) assert(1); + else { + out = dacoshs(In[i]); + assert ( ( fabs(out-Res[i]) / fabs(out) ) <1e-15); + } + } } void zacoshsTest(void) { - doubleComplex dot_one = DoubleComplex(0.1, 0.0); - doubleComplex pi_pi = DoubleComplex(DPI, DPI); - doubleComplex pi_2_pi_2 = DoubleComplex(DPI/2, DPI/2); - doubleComplex pi_2_pi_3 = DoubleComplex(DPI/2, DPI/3); - doubleComplex pi_2_pi_4 = DoubleComplex(DPI/2, DPI/4); - doubleComplex out; - - printf(">> Double Complex scalar\n"); - out = zacoshs(dot_one); - printf("zacoshs(0.1 + I*0) = %e + I * %e\n", zreals(out), zimags(out)); - out = zacoshs(pi_pi); - printf("zacoshs(PI + I*PI) = %e + I * %e\n", zreals(out), zimags(out)); - out = zacoshs(pi_2_pi_2); - printf("zacoshs(PI/2 + I*PI/2) = %e + I * %e\n", zreals(out), zimags(out)); - out = zacoshs(pi_2_pi_3); - printf("zacoshs(PI/2 + I*PI/3) = %e + I * %e\n", zreals(out), zimags(out)); - out = zacoshs(pi_2_pi_4); - printf("zacoshs(PI/2 + I*PI/4) = %e + I * %e\n", zreals(out), zimags(out)); + double InR[]=ZRIN; + double InI[]=ZIIN; + double ResR[]=ZRRESULT; + double ResI[]=ZIRESULT; + int i=0; + doubleComplex in,out; + + for (i=0;i<200;i++){ + in=DoubleComplex(InR[i],InI[i]); + out=zacoshs(in); + assert( ( fabs(zreals(out)-ResR[i]) / fabs(zreals(out)) ) <1e-15); + assert( ( fabs(zimags(out)-ResI[i]) / fabs(zimags(out)) ) <1e-15); + } } void dacoshaTest(void) { - double out[5]; - double in[5] = {DPI, DPI/2, DPI/3, DPI/4, DPI/6}; + double In[]=IN; + double Res[]=RESULT; + double out[200],in[200]; int i = 0; - printf(">> Double Array\n"); - dacosha(in, 5, out); - for (i = 0 ; i < 5 ; ++i) - printf("sacosha(array) = %f\n", out[i]); + for (i=0;i<200;i++){ + in[i]=In[i]; + } + dacosha(in,200,out); + for (i=0;i<200;i++){ + if (isnan(out[i])) assert(1); + else{ + assert ( ( fabs(out[i]-Res[i]) / fabs(out[i]) ) <1e-15); + } + } } void zacoshaTest(void) { - doubleComplex in[4]; - doubleComplex out[4]; - int i = 0; - - in[0] = DoubleComplex(DPI, DPI); - in[1] = DoubleComplex(DPI/2, DPI/2); - in[2] = DoubleComplex(DPI/2, DPI/3); - in[3] = DoubleComplex(DPI/2, DPI/4); + double InR[]=ZRIN; + double InI[]=ZIIN; + double ResR[]=ZRRESULT; + double ResI[]=ZIRESULT; + int i=0; + doubleComplex in[200],out[200]; - zacosha(in, 4, out); - printf(">> Double Complex Array\n"); - for (i = 0 ; i < 4 ; ++i) - printf("zacosha(array) = %e + I * %e\n", zreals(out[i]), zimags(out[i])); + for (i=0;i<200;i++){ + in[i]=DoubleComplex(InR[i],InI[i]); + } + zacosha(in,200,out); + for (i=0;i<200;i++){ + assert( ( fabs(zreals(out[i])-ResR[i]) / fabs(zreals(out[i])) ) <1e-15); + assert( ( fabs(zimags(out[i])-ResI[i]) / fabs(zimags(out[i])) ) <1e-15); + } } int testAcosh(void) { diff --git a/src/elementaryFunctions/acosh/testFloatAcosh.c b/src/elementaryFunctions/acosh/testFloatAcosh.c index fa5fe48a..a17322d0 100644 --- a/src/elementaryFunctions/acosh/testFloatAcosh.c +++ b/src/elementaryFunctions/acosh/testFloatAcosh.c @@ -11,65 +11,483 @@ */ #include "testAcosh.h" +#include "isnan.h" + +#define IN {38.746443623676896095276f,39.8779044859111309052f,99.6399083640426397324f,\ +93.207842670381069183350f,6.8147667217999696731567f,71.874653641134500503540f,\ +65.928971720859408378601f,43.781969323754310607910f,95.70061699487268924713f,\ +39.777786191552877426147f,54.149620747193694114685f,14.754852838814258575439f,\ +91.972588421776890754700f,41.853474546223878860474f,90.448315022513270378113f,\ +32.027477025985717773438f,57.482325518503785133362f,75.726259034126996994019f,\ +32.547289272770285606384f,50.125551037490367889404f,26.862081931903958320618f,\ +11.706684622913599014282f,36.675705714151263237000f,87.538864836096763610840f,\ +52.483216533437371253967f,76.861125137656927108765f,82.899243896827101707458f,\ +64.99033216387033462524f,56.250627012923359870911f,21.698794979602098464966f,\ +93.22312804870307445526f,93.5097210109233856201f,97.608120972290635108948f,\ +91.35094834491610527039f,26.843591919168829917908f,9.1870715841650962829590f,\ +17.129724519327282905579f,73.117265943437814712524f,86.922781122848391532898f,\ +1.4808017760515213012695f,65.071928361430764198303f,42.254429217427968978882f,\ +23.262092983350157737732f,31.955500133335590362549f,74.261871399357914924622f,\ +77.881882060319185256958f,65.248953877016901969910f,90.324406325817108154297f,\ +86.69646182097494602203f,70.879780035465955734253f,69.452034076675772666931f,\ +84.671579115092754364014f,93.227435695007443428040f,95.654127094894647598267f,\ +16.239900095388293266296f,12.728751823306083679199f,95.707353064790368080139f,\ +67.644099798053503036499f,39.798104530200362205505f,11.081875301897525787354f,\ +50.97153154201805591583f,58.446559030562639236450f,25.919713405892252922058f,\ +29.182348400354385375977f,6.0309174004942178726196f,90.43274922296404838562f,\ +61.944271018728613853455f,25.037935934960842132568f,83.850894169881939888000f,\ +82.732185069471597671509f,73.220202280208468437195f,29.458374157547950744629f,\ +29.091028729453682899475f,70.458725746721029281616f,30.465652560815215110779f,\ +75.730663724243640899658f,73.18075490184128284454f,69.053836632519960403442f,\ +62.402765033766627311707f,41.599050164222717285156f,28.105994546785950660706f,\ +5.6220385245978832244873f,58.040395518764853477478f,0.4246918484568595886230f,\ +68.2817161548882722855f,89.133544359356164932251f,92.980264825746417045593f,\ +28.40001545846462249756f,9.885430941358208656311f,41.369083430618047714233f,\ +64.121548598632216453552f,64.692758955061435699463f,47.02662643976509571075f,\ +60.481913108378648757935f,67.138904659077525138855f,71.394702047109603881836f,\ +54.127137595787644386292f,39.052018057554960250854f,1.1089378502219915390015f,\ +90.150084160268306732178f,13.887455360963940620422f,8.5074969567358493804932f,\ +34.66010238043963909149f,42.338709905743598937988f,80.213972786441445351f,\ +31.7881367169320583344f,18.021041667088866233826f,69.688742049038410186768f,\ +35.482168616726994514465f,16.12617420032620429993f,75.34236568026244640350f,\ +62.194181978702545166016f,51.510728383436799049377f,67.819245439022779464722f,\ +61.666865786537528038025f,70.212037675082683563232f,13.621602999046444892883f,\ +60.870522353798151016235f,18.923167092725634574890f,47.614179179072380065918f,\ +17.161004850640892982483f,41.371036972850561141968f,15.31781828962266445160f,\ +22.868881560862064361572f,95.856341393664479255676f,39.499193150550127029419f,\ +2.500818995758891106f,44.927055388689041137695f,91.384086245670914649963f,\ +11.012465786188840866089f,74.87958460114896297455f,0.7881646975874900817871f,\ +23.523587780073285102844f,80.106287542730569839478f,65.456348611041903495789f,\ +51.620832458138465881348f,70.271815219894051551819f,5.5151230655610561370850f,\ +62.56400248967111110687f,84.313133545219898223877f,17.294042231515049934387f,\ +41.730730701237916946411f,81.875373004004359245300f,25.327575206756591796875f,\ +86.085468018427491188049f,17.212611716240644454956f,78.060937067493796348572f,\ +13.735765032470226287842f,0.2187759149819612503052f,1.4656470157206058502197f,\ +30.469974083825945854187f,80.307766422629356384277f,99.052629480138421058655f,\ +82.85992136225104331970f,87.21015579067170619965f,29.531141556799411773682f,\ +58.27610609121620655060f,29.06773509457707405090f,2.0005736034363508224f,\ +71.4346818625926971436f,26.664068037644028663635f,51.992803346365690231323f,\ +48.17320345900952816010f,0.0918259844183921813965f,38.418471114709973335266f,\ +49.06664276495575904846f,44.197808159515261650085f,65.678765252232551574707f,\ +10.470610717311501502991f,42.787145730108022689819f,75.105277216061949729919f,\ +36.962236650288105010986f,84.119305433705449104309f,90.374342072755098342896f,\ +44.184404192492365837097f,1.0920032858848571777344f,20.380018139258027076721f,\ +85.418348293751478195190f,39.327101549133658409119f,97.573022358119487762451f,\ +8.4199145901948213577271f,23.39450428262352943420f,48.397052986547350883484f,\ +33.292300626635551452637f,96.453859517350792884827f,52.920697536319494247437f,\ +7.9968032892793416976929f,75.475437380373477935791f,4.476350219920277596f,\ +84.631874877959489822388f,20.008285669609904289246f,69.44785490632057189941f,\ +28.204387659206986427307f,79.546741675585508346558f,20.281786611303687095642f,\ +78.075716458261013031006f,93.606285052374005317688f,88.801648560911417007446f,\ +33.848348213359713554382f,89.761531725525856018066f} + +#define RESULT {4.3500195892822599574856f,4.378812333443298676627f,5.2946847693089331698957f,\ +5.2279502699832844925254f,2.6068118507181217147206f,4.968022463585481496295f,\ +4.8816676362403299549442f,4.4722388068202851840738f,5.2543446283333992141706f,\ +4.3762977630646631155287f,4.6848128785767624293612f,3.3835688928264802122214f,\ +5.2146082054939908445590f,4.4271792498758397726988f,5.1978952030053422461719f,\ +4.159497560939560578674f,4.7445490293632399669832f,5.0202285648475850621253f,\ +4.1756051841813626168687f,4.6075785448582253778227f,3.9835162329116351465075f,\ +3.1514779837977200394050f,4.2950758361772223281605f,5.165197419194649697261f,\ +4.653549840642725143880f,5.035105083560019956224f,5.1107367420045859418565f,\ +4.8673265089936572636020f,4.7228853485288873059744f,3.7698725167565876326137f,\ +5.2281142583800894740875f,5.2311839874435639430317f,5.2740816359097371091025f,\ +5.2078258853539018957690f,3.982827186610214287299f,2.9079691610609703644741f,\ +3.5331093207527803912171f,4.9851649496034715625115f,5.1581342419725935144470f,\ +0.9450506373811344840163f,4.8685813827251553931319f,4.4367163112396088564537f,\ +3.8395099847061766595857f,4.1572465837028591550961f,5.0006994941965512424531f,\ +5.0482993082581542054754f,4.8712984679982609392823f,5.1965242406243383754827f,\ +5.1555269912574592794385f,4.954082618091184997411f,4.9337317049920867972901f,\ +5.1318923054243690273779f,5.228160467885317963521f,5.2538586990129676479455f,\ +3.4796690893012534040452f,3.2354639460120244720542f,5.2544150166005954005755f,\ +4.9073526741507107473694f,4.3768085901327413722584f,3.0964161555968114925008f,\ +4.6243182142058252281913f,4.7611868033967539304285f,3.9477786701409951497510f,\ +4.0664175090632737052943f,2.4831009250018341028010f,5.1977230816033159754852f,\ +4.8193171469932529760172f,3.9131402651137854320496f,5.1221517738388655516246f,\ +5.1087193584020944570057f,4.98657191625376672306f,4.0758371911626332106948f,\ +4.0632814774108050315249f,4.9481239065017428302440f,4.1094776238806378643176f,\ +5.0202867341820684998766f,4.9860329708595516606806f,4.9279811897230469952547f,\ +4.8266925606060153697285f,4.421080015153528108840f,4.0288134359166507536543f,\ +2.4118364183807097234080f,4.7542122019999739634954f,0,\ +4.9167355873994562642793f,5.1832514554357551617159f,5.2255055264178071894321f,\ +4.0392267678246307482937f,2.9816410740582028893186f,4.4155348942144980739499f,\ +4.8538668500531736427206f,4.8627367182462748473881f,4.5437480774189333843083f,\ +4.7954231948046981415246f,4.8998553915953095838631f,4.9613217960209823331752f,\ +4.6843975172654603866818f,4.3578777660333960497496f,0.4626347638559775710121f,\ +5.1945923008314265345575f,3.3228343258666956927527f,2.830622803369744922009f,\ +4.238528249750794785200f,4.438709481897562980635f,5.077806047884725337838f,\ +4.1519928438683244564800f,3.5839165427001460351164f,4.9371344840241793150426f,\ +4.2619788264190443527468f,3.4726281293145686568380f,5.0151457380383783757338f,\ +4.8233440014012511909414f,4.6348430510092004652734f,4.9099388325030934865367f,\ +4.81482819845952114690f,4.9446162371720561168331f,3.3034540778469194677314f,\ +4.8018287252966844746993f,3.6328352359975357721567f,4.556167488561304601546f,\ +3.5349368514717505185274f,4.41558212917596915048f,3.4210967363570983224008f,\ +3.8224459155669441301484f,5.2559705982049909067655f,4.3692671498839636967659f,\ +1.5671566063449566819088f,4.4980634827120455909721f,5.2081885950679547292452f,\ +3.0901072205487807309510f,5.0089838747007107144782f,0,\ +3.850698741029123794988f,5.076462566530570263978f,4.8744723131002718474747f,\ +4.6369786693462113902342f,4.9454673471881154256380f,2.3923187222394570738970f,\ +4.8292733779221936885051f,5.127649658742538640865f,3.5426723072020398497273f,\ +4.424241396092424949416f,5.0983081346685077406278f,3.9246509637740216724922f,\ +5.1484540607983912963164f,3.537944651477085589164f,5.0505959169093319616195f,\ +3.3118225003889145696689f,0,0.9310418690232507010762f,\ +4.1096195393026562214800f,5.0789747485012091132717f,5.2887730188734272118722f,\ +5.1102622536361952398920f,5.1614350980940946200803f,4.0783057415377843568649f,\ +4.7582657239633334711471f,4.0624799671967695147146f,1.3172890037212539038336f,\ +4.9618816771260449982606f,3.9761122565887623281f,4.64415999832871140285f,\ +4.5678423566873336270078f,0,4.3415161209508754680542f,\ +4.5862227542495350718355f,4.481694375737592217490f,4.8778648861550966131517f,\ +3.0394313734202933474648f,4.4492483198356360674097f,5.0119936831694982259933f,\ +4.3028609023006350042806f,5.1253479422290126876760f,5.1970769705972195140475f,\ +4.4813909798397162376205f,0.4257373352329655857851f,3.7070996451820255046528f,\ +5.1406738437618608728030f,4.3648993866947414232982f,5.2737219653314042489001f,\ +2.820201721217977297584f,3.8451912168199942065883f,4.5724793527790357217100f,\ +4.1982477070823893683382f,5.2621850617105074832125f,4.661852422144622920541f,\ +2.7682565538529817494862f,5.0169105620070073570105f,2.1792385497944919414692f,\ +5.131423242241443638534f,3.6886685835548016498819f,4.9336715234659216378077f,\ +4.032310316197459165721f,5.0694524637856641646749f,3.7022621441401133424165f,\ +5.0507852459760567143121f,5.2322161767096924123166f,5.1795206909289932539764f,\ +4.2148191048546337356129f,5.19027265701442619417f} + +#define CRIN {0.1483933464623987674713f,0.5565875237807631492615f,0.4628333351574838161469f,\ +0.9158247429877519607544f,0.0444016349501907825470f,0.8175177471712231636047f,\ +0.5320580708794295787811f,0.2989391684532165527344f,0.5029047676362097263336f,\ +0.4266923693940043449402f,0.3965902938507497310638f,0.7440190296620130538940f,\ +0.7921002809889614582062f,0.5715918401256203651428f,0.4155966262333095073700f,\ +0.2953372262418270111084f,0.1075767637230455875397f,0.7572548976168036460876f,\ +0.93660886352881789207f,0.7694978956133127212524f,0.0902581927366554737091f,\ +0.4731486858800053596497f,0.4765542480163276195526f,0.6361737176775932312012f,\ +0.5064576440490782260895f,0.9049607468768954277039f,0.6742701171897351741791f,\ +0.3656400945037603378296f,0.6837903787381947040558f,0.4100628877058625221252f,\ +0.3582529271952807903290f,0.7118562050163745880127f,0.7966963038779795169830f,\ +0.9753969227895140647888f,0.5733916512690484523773f,0.8998429346829652786255f,\ +0.5953218084760010242462f,0.3765322910621762275696f,0.9104355531744658946991f,\ +0.1861076802015304565430f,0.6715109744109213352203f,0.2566455481573939323425f,\ +0.9819463356398046016693f,0.7608660291880369186401f,0.8556561623699963092804f,\ +0.8441717335954308509827f,0.3884846637956798076630f,0.4608103148639202117920f,\ +0.8381579727865755558014f,0.5278776129707694053650f,0.0187810636125504970551f,\ +0.2611750457435846328735f,0.6092445817776024341583f,0.0081067951396107673645f,\ +0.0276411953382194042206f,0.0158492103219032287598f,0.8109004520811140537262f,\ +0.2429467244073748588562f,0.3353355019353330135345f,0.4142854567617177963257f,\ +0.5946544189937412738800f,0.9080675477162003517151f,0.992223232518881559372f,\ +0.6239561475813388824463f,0.0789771513082087039948f,0.5889828568324446678162f,\ +0.2523608407936990261078f,0.5871062893420457839966f,0.0000379872508347034454f,\ +0.4244823055341839790344f,0.69984475849196314812f,0.4405533373355865478516f,\ +0.6495711454190313816071f,0.4199861017987132072449f,0.2716385438106954097748f,\ +0.0272838752716779708862f,0.6936013107188045978546f,0.1495713749900460243f,\ +0.5206344048492610454559f,0.9685971699655055999756f,0.9657785953022539615631f,\ +0.0654204180464148521423f,0.9626990980468690395355f,0.2655456010252237319946f,\ +0.8290728745050728321075f,0.1334408046677708625793f,0.8514542016200721263885f,\ +0.8984219655394554138184f,0.1995774977840483188629f,0.0138073815032839775085f,\ +0.2245407640002667903900f,0.3930436577647924423218f,0.8261723746545612812042f,\ +0.5051761353388428688049f,0.5651183272711932659149f,0.822583723813295364380f,\ +0.9197964356280863285065f,0.4713199352845549583435f,0.9223483256064355373383f,\ +0.2136987913399934768677f,0.7260794681496918201447f,0.9689361499622464179993f,\ +0.8346118587069213390350f,0.8257038742303848266602f,0.1350833275355398654938f,\ +0.7953761396929621696472f,0.8992118402384221553802f,0.2715440522879362106323f,\ +0.9219025229103863239288f,0.1750466236844658851624f,0.3323095212690532207489f,\ +0.9493130259215831756592f,0.7118741781450808048248f,0.8032329222187399864197f,\ +0.3628453887067735195160f,0.7530685458332300186157f,0.2641473677940666675568f,\ +0.9660940738394856452942f,0.8041944387368857860565f,0.5316947177052497863770f,\ +0.1673618280328810214996f,0.955579827539622783661f,0.6473058252595365047455f,\ +0.2645611818879842758179f,0.5411860425956547260284f,0.4980195099487900733948f,\ +0.0190768833272159099579f,0.4227291680872440338135f,0.8374647037126123905182f,\ +0.4151327675208449363708f,0.3497115275822579860687f,0.4844544250518083572388f,\ +0.3347255480475723743439f,0.2362121837213635444641f,0.0928130256943404674530f,\ +0.0737370252609252929688f,0.4197955676354467868805f,0.9802277712151408195496f,\ +0.8419611467979848384857f,0.6906680446118116378784f,0.2502765958197414875031f,\ +0.8266033390536904335022f,0.1875236849300563335419f,0.5023231171071529388428f,\ +0.8916302681900560855865f,0.8934147348627448081970f,0.1574523574672639369965f,\ +0.1629528645426034927368f,0.5226223585195839405060f,0.8417599620297551155090f,\ +0.5858130785636603832245f,0.1322202011942863464355f,0.8028764897026121616364f,\ +0.5250511718913912773132f,0.2528006075881421566010f,0.4602345135062932968140f,\ +0.996287219692021608353f,0.4019785309210419654846f,0.1399875725619494915009f,\ +0.5081327147781848907471f,0.9440425024367868900299f,0.9318959629163146018982f,\ +0.6445578685961663722992f,0.5729571748524904251099f,0.4810055238194763660431f,\ +0.6713787661865353584290f,0.0962744313292205333710f,0.8855805248022079467773f,\ +0.3892059125937521457672f,0.2907031057402491569519f,0.4209313853643834590912f,\ +0.9504273366183042526245f,0.482190326321870088577f,0.2289973804727196693420f,\ +0.2940405677072703838348f,0.6957426778972148895264f,0.9139824123121798038483f,\ +0.2068154653534293174744f,0.6285024262033402919769f,0.4031575415283441543579f,\ +0.3064021435566246509552f,0.3148818286135792732239f,0.7400112929753959178925f,\ +0.8853011503815650939941f,0.788494529668241739273f,0.8977585239335894584656f,\ +0.0339450328610837459564f,0.8802101369947195053101f,0.5418177028186619281769f,\ +0.9511840576305985450745f,0.5574890668503940105438f,0.1312845982611179351807f,\ +0.9453403786756098270416f,0.2518341308459639549255f,0.2607447705231606960297f,\ +0.1215410251170396804810f,0.9136986923404037952423f,0.9382542567327618598938f,\ +0.3105722474865615367889f,0.9309121072292327880859f} + +#define CIIN {0.5225624092854559421539f,0.7617142526432871818542f,0.3009174778126180171967f,\ +0.1853434126824140548706f,0.5148605112917721271515f,0.7257346073165535926819f,\ +0.7033738414756953716278f,0.5664369426667690277100f,0.7816161573864519596100f,\ +0.3330347230657935142517f,0.4017280167900025844574f,0.8503915611654520034790f,\ +0.41114101978018879890f,0.1586530329659581184387f,0.6542402538470923900604f,\ +0.9449902996420860290527f,0.400338994804769754410f,0.9679889930412173271179f,\ +0.32740902295336127281f,0.8933845367282629013062f,0.6218692888505756855011f,\ +0.0985169494524598121643f,0.7449700380675494670868f,0.3134250529110431671143f,\ +0.1409188793040812015533f,0.3239218806847929954529f,0.9958796552382409572601f,\ +0.2412899602204561233521f,0.4753343504853546619415f,0.9194070147350430488586f,\ +0.0450326460413634777069f,0.8481595069169998168945f,0.8928631045855581760406f,\ +0.1469233212992548942566f,0.4904643460176885128021f,0.9986877571791410446167f,\ +0.3392539476044476032257f,0.8790708789601922035217f,0.3107871781103312969208f,\ +0.1200211457908153533936f,0.0909670502878725528717f,0.5804221173748373985291f,\ +0.446611551102250814438f,0.3501139078289270401001f,0.7262432840652763843536f,\ +0.3650169344618916511536f,0.5597011330537497997284f,0.434090383350849151611f,\ +0.5082829319871962070465f,0.3487796885892748832703f,0.8136124997399747371674f,\ +0.337404197081923484802f,0.7742837746627628803253f,0.0156080657616257667542f,\ +0.0195691580884158611298f,0.0445443131029605865479f,0.4240885511972010135651f,\ +0.8158838218078017234802f,0.9913199446164071559906f,0.5120379645377397537231f,\ +0.1021917951293289661407f,0.7161553995683789253235f,0.4527317988686263561249f,\ +0.2445004582405090332031f,0.1668560453690588474274f,0.9187424210831522941589f,\ +0.3418669118545949459076f,0.4624818544834852218628f,0.0400874321348965167999f,\ +0.4700120547786355018616f,0.8552942494861781597137f,0.3308605216443538665771f,\ +0.0322206378914415836334f,0.9760772576555609703064f,0.0763854510150849819183f,\ +0.2165335658937692642212f,0.2348632332868874073029f,0.1446668924763798713684f,\ +0.5313451024703681468964f,0.4441541358828544616699f,0.5759493880905210971832f,\ +0.3719177199527621269226f,0.5167253850959241390228f,0.5186656024307012557983f,\ +0.6306529571302235126495f,0.0928382659330964088440f,0.5421750987879931926727f,\ +0.2833826132118701934814f,0.2819099412299692630768f,0.1141945635899901390076f,\ +0.7321730605326592922211f,0.9823690224438905715942f,0.8243003231473267078400f,\ +0.6485677706077694892883f,0.5304958778433501720428f,0.6958626955747604370117f,\ +0.6050392785109579563141f,0.2683336613699793815613f,0.5511700971983373165131f,\ +0.1174971889704465866089f,0.7958277617581188678741f,0.4983139941468834877014f,\ +0.9196587274782359600067f,0.1420703046023845672607f,0.389312467072159051895f,\ +0.2658497532829642295837f,0.9480321384035050868988f,0.2326095197349786758423f,\ +0.0139051643200218677521f,0.9270462663844227790833f,0.4878733339719474315643f,\ +0.0354842916131019592285f,0.6607114099897444248199f,0.0879401965066790580750f,\ +0.8046676008962094783783f,0.212315237149596214294f,0.9163186331279575824738f,\ +0.9393384093418717384338f,0.3174265320412814617157f,0.9574301876127719879150f,\ +0.7951935962773859500885f,0.3240787154063582420349f,0.0472964248619973659515f,\ +0.1696171183139085769653f,0.7654392314143478870392f,0.2554624872282147407532f,\ +0.1189010548405349254608f,0.7469239532947540283203f,0.0616608508862555027008f,\ +0.1056091515347361564636f,0.1581688239239156246185f,0.9732552450150251388550f,\ +0.8786917333491146564484f,0.1824825564399361610413f,0.9303942839615046977997f,\ +0.4655157290399074554443f,0.5399280847050249576569f,0.9143392136320471763611f,\ +0.0622840351425111293793f,0.6500507537275552749634f,0.2340233740396797657013f,\ +0.3603484155610203742981f,0.1917369994334876537323f,0.2371335849165916442871f,\ +0.4136920445598661899567f,0.2661342276260256767273f,0.3891090690158307552338f,\ +0.6622495856136083602905f,0.4503725995309650897980f,0.3829893553629517555237f,\ +0.1937121297232806682587f,0.9629272706806659698486f,0.6385000632144510746002f,\ +0.2695108866319060325623f,0.1092974594794213771820f,0.0598662365227937698364f,\ +0.1431378168053925037384f,0.2944079088047146797180f,0.9022735017351806163788f,\ +0.9111119657754898071289f,0.9847188093699514865875f,0.0592310009524226188660f,\ +0.5464080139063298702240f,0.5080275069922208786011f,0.6546461437828838825226f,\ +0.9597736010327935218811f,0.1577645908109843730927f,0.1818120293319225311279f,\ +0.4555030376650393009186f,0.1048952480778098106384f,0.7636235631071031093597f,\ +0.1893162522464990615845f,0.1596221593208611011505f,0.3115166993811726570129f,\ +0.2491372707299888134003f,0.0469047501683235168457f,0.0797643386758863925934f,\ +0.3945369226858019828796f,0.3254697113297879695892f,0.5811151321977376937866f,\ +0.1456566532142460346222f,0.4704219633713364601135f,0.8631705637089908123016f,\ +0.1648640967905521392822f,0.0801398889161646366119f,0.4932156866416335105896f,\ +0.4345335862599313259125f,0.1079503614455461502075f,0.2686753761954605579376f,\ +0.7417223947122693061829f,0.4086893904022872447968f,0.6706044673919677734375f,\ +0.4159612008370459079742f,0.4766113189980387687683f,0.4431825890205800533295f,\ +0.6688354592770338058472f,0.5834077899344265460968f,0.4861929873004555702209f,\ +0.715783319901674985886f,0.1403244398534297943115f} + +#define CRRESULT {0.5053397031743451783825f,0.7650083608446867078356f,0.3289296819323739295982f,\ +0.3563456766158749622342f,0.4948207655225617118688f,0.8169593462846268527855f,\ +0.7132198900639351579755f,0.5570137230416445373038f,0.7685376318852206178889f,\ +0.3559803193123551312560f,0.4189790595413633300659f,0.8813522345691391368661f,\ +0.5405451162482487470484f,0.1905551975849387180695f,0.6493731034151291048317f,\ +0.8578709195697519218626f,0.3922142862720902067863f,0.9642946930057294530059f,\ +0.5389615746319644795648f,0.9186094888728127960675f,0.5890418064066422765279f,\ +0.1113977102429560134267f,0.7345860770241963155769f,0.3799876579856086289411f,\ +0.1619970506356118999935f,0.51382943864194075001f,0.9605702232101991366875f,\ +0.2552214504374311077051f,0.5588288246069162967800f,0.8545155572742579863643f,\ +0.0482073009402987154304f,0.8701819105023789191478f,0.9267094766915666692597f,\ +0.3583874762657675017152f,0.5394241582016752190043f,1.0267057888096897677599f,\ +0.3962322220487046187110f,0.8200372580795054489045f,0.5035682683774097556650f,\ +0.1218215489911998739014f,0.1217295472085216101465f,0.5645974853924803360528f,\ +0.6787204142960019392916f,0.4641409785094591788912f,0.8320374579652175528466f,\ +0.5202648072575078996849f,0.5635084163999081185992f,0.4608376215542885900867f,\ +0.6521335567127740651117f,0.3901559225476997627702f,0.7433295520896158192770f,\ +0.3414853587252406064145f,0.7876437052847802267053f,0.0156079448330699189357f,\ +0.0195753850507095344957f,0.0445351746116087257588f,0.5619901990592348628439f,\ +0.7563216032216260042986f,0.8953230010983072029163f,0.5250759023565449989945f,\ +0.1262270783291525866332f,0.8463340938014771719367f,0.6903512283163251161966f,\ +0.3002023271844543317322f,0.1665929038330317135674f,0.8881085995755062523216f,\ +0.3450945758035259824936f,0.5168125326109850314893f,0.0400767031552608649081f,\ +0.4881659313644853837033f,0.8717577944100705078512f,0.3559191435167290418207f,\ +0.0423384874325624382951f,0.8962569818869624560520f,0.0792669980362326609402f,\ +0.2149514867261388406661f,0.3084002596083564862184f,0.1457610223920582370738f,\ +0.5638322964331675679617f,0.6681928703809085767773f,0.7715309042125101379739f,\ +0.3644939000586688848671f,0.7241095709372292743566f,0.5109856481565466790329f,\ +0.7492592023075983487246f,0.0935322123614654998836f,0.6873609600399674945947f,\ +0.4653574362777189166174f,0.2834338708350941926639f,0.1139584955905696417311f,\ +0.6886187601911135658384f,0.8966624572124947123442f,0.8901159605244814976288f,\ +0.6621780758434868685569f,0.5739364819547106977282f,0.7967040377802739881119f,\ +0.7702556784014074064970f,0.2963495189276508789966f,0.729639913718978516677f,\ +0.1199467917211827494572f,0.8369585267706058928638f,0.7130151705637984838049f,\ +0.9564173315765011063050f,0.2362741844905166255231f,0.3829952297292640861492f,\ +0.3854654409071321952140f,0.9956878617898979877410f,0.2388852521695121466916f,\ +0.0357548125472270175718f,0.8344528446849692748799f,0.4908081134490644426016f,\ +0.1072298401775326898155f,0.7292248632489435333781f,0.1444440063075330404896f,\ +0.7618560442692507983509f,0.3014073074948313002430f,0.8338433864005018181231f,\ +1.013809216729007589564f,0.4488437286282063176657f,0.9028988520348978363828f,\ +0.7342748763980897486192f,0.5492704923146081164020f,0.0619250478958671968233f,\ +0.1747947745500638971894f,0.7643392221916658346714f,0.2869233753851287982428f,\ +0.1186438529044472750540f,0.7261517086175122148717f,0.1110167797262640587697f,\ +0.1156665104854840142590f,0.1677179018762894047168f,0.9049771869312485117476f,\ +0.8140692858573190804350f,0.1865250841653489921601f,0.8328626043313867022277f,\ +0.4511026850510220786994f,0.5511713324178673101272f,1.0040394102716723168101f,\ +0.1134432764930088655131f,0.7136163206069113806862f,0.2389915016256592694699f,\ +0.5061510239067475991348f,0.1938531425179492451161f,0.267912781705172242663f,\ +0.594520593176991907214f,0.4421595740617755287971f,0.3838580911610497414799f,\ +0.6265966551277006857390f,0.4892019455111443759776f,0.5371648663643865395656f,\ +0.2336644699290637006150f,0.8580649693764487162539f,0.7447932141471096390006f,\ +0.30664577808112553070f,0.1126796888171682081703f,0.0673404850217956818526f,\ +0.3780061914448271664924f,0.3135468248495265064513f,0.8141814149801622768621f,\ +0.8656800272972641208113f,1.0330415543607425199468f,0.1517147576472806791426f,\ +0.6107832692276639052764f,0.5555300503019462432519f,0.6621194316643849164805f,\ +0.9359383537376269046604f,0.1578266511911156633197f,0.3288869400610432980336f,\ +0.4688911283964798393242f,0.1093517544178844447256f,0.7390278072154514710235f,\ +0.3915656081630794482784f,0.1803516698292359499156f,0.3140185989593758941751f,\ +0.2570435038916802361619f,0.0651252572213311814453f,0.1812803236410877871787f,\ +0.3918987512324060840108f,0.3907169202420177067658f,0.5847178774812699098007f,\ +0.1522469534945809221949f,0.4726351219523636792985f,0.8890284419930043480207f,\ +0.3043305148205690535690f,0.1282404489119809976039f,0.6689999411776240689775f,\ +0.4220981761434796641907f,0.2107039270298768085521f,0.3089304668962193911597f,\ +0.8825265124364938262858f,0.4570764804119011315287f,0.6317437032300170507426f,\ +0.6289949625530589782940f,0.4716158816756069738219f,0.4417016096894970100806f,\ +0.6297964082740089564183f,0.7506329678118981441060f,0.6853639001045995771122f,\ +0.6844909750084481325771f,0.3028385676048351293765f} + +#define CIRESULT {1.4391441245686327210507f,1.130955515640670316913f,1.1164484564631134144719f,\ +0.5343429881094952094145f,1.5313159234681512632648f,0.9218282568507811802760f,\ +1.1368031918334591257036f,1.309961324172885133166f,1.1768313149474189938104f,\ +1.1581725732800560724201f,1.198068547194847122128f,1.0167778558643913999759f,\ +0.8107284978807606234952f,0.9747572654361357225028f,1.2226962809307837520834f,\ +1.356863284326968122073f,1.4708283871101888173882f,1.0424189614104724110888f,\ +0.6175483783889722522176f,1.012434899444895508580f,1.4941377955828787360559f,\ +1.081247186686038253001f,1.189977918876721885155f,0.9361970185325101390106f,\ +1.0473314366303878575337f,0.6478815708564551467674f,1.103880390282215628872f,\ +1.208902068619972958174f,0.9405460211534443226711f,1.2708555309086870810376f,\ +1.2048457921815343141247f,1.0386992340805454304586f,0.9940470159552662332558f,\ +0.4129471251607437776165f,1.0483368304459323994138f,0.9626808065085141752348f,\ +0.9866797451792658213421f,1.2893127532844186333705f,0.6333368050416610106623f,\ +1.3849939050391590900091f,0.8412033774271403530065f,1.3484185557182311043789f,\ +0.6561721869869621137639f,0.8152667302376208624537f,0.8942162872449925803409f,\ +0.7354476761871528989190f,1.2302184692777484720239f,1.1419032200306009627866f,\ +0.8136425490751511002685f,1.0585917357001826122342f,1.5562281161680697749716f,\ +1.3215709464122720184776f,1.0936282246933759498830f,1.562690430228121041267f,\ +1.5431569076078051061529f,1.5549621593607869662890f,0.7985043985204253180754f,\ +1.3827954341839958640747f,1.3338048203354757603734f,1.1992311317991326546917f,\ +0.9398015526727905299964f,0.8526323846859752420002f,0.6516084904889641871151f,\ +0.9312161189612270240090f,1.4928235928235611407189f,1.1434135639085114544145f,\ +1.3304436504678796016066f,1.0279557218905930326969f,1.5707583700301124274290f,\ +1.18264027414866035315f,1.049240570305455033662f,1.1438977350867394200407f,\ +0.8645410048697405036577f,1.272544314036070156604f,1.2965854453389789036066f,\ +1.5441276936419627840991f,0.8474785980812834518261f,1.4222542688372477037717f,\ +1.1067340541491283989473f,0.6658230283826037654293f,0.7440600810961385258580f,\ +1.509454955782236762474f,0.7139904083352976993382f,1.3343109319103572119047f,\ +0.8754276015708571945240f,1.4375430902494801266300f,0.8182153660902479197503f,\ +0.6279916190243797213810f,1.3777792247900606525945f,1.5570776874524723254467f,\ +1.3896877170114805277734f,1.292290381577097857502f,0.9513544490495031702437f,\ +1.146595322853661613749f,1.0663673649265974496814f,0.9066444651210990857138f,\ +0.7936124351430207113367f,1.1025133400691302654195f,0.7646931356316959416120f,\ +1.3570006423237950254901f,1.0127507430242304042878f,0.6984070724030820853656f,\ +0.9777377069899801931285f,0.6381815285628557044006f,1.4447151619316793702552f,\ +0.7381184252357657626931f,0.9463444174447509515957f,1.3036540993301888313738f,\ +0.3993509460349408124458f,1.4425649666003559357108f,1.2703537792660923866350f,\ +0.3366052452908819825339f,0.9799364183556658058905f,0.6519110571169279833015f,\ +1.288935099739083156578f,0.766834829952783847418f,1.3765235555687964641436f,\ +0.9026821267000586512808f,0.7532458865053713870097f,1.1915253215495016370085f,\ +1.4398661339551832583084f,0.5960292480319858698934f,0.8683763627836410536887f,\ +1.307183356265154250409f,1.1437419441048803925298f,1.0721920855425228769064f,\ +1.5518517938677236500666f,1.2329687641584510249260f,0.5874976025749066854686f,\ +1.1457409989520814797004f,1.2187173974473419768572f,1.2272326680013900812583f,\ +1.3202499364548996307889f,1.3364966855772182352524f,1.5028659601895917319325f,\ +1.5039244799556488185743f,1.199080874147727016066f,0.8850027352965960103504f,\ +0.5797999065603636204003f,0.9935513093218836244702f,1.3250345117052622079257f,\ +0.7510747251416685088543f,1.3856864393507652977178f,1.0646397833458374204696f,\ +0.7161423103150551527918f,0.6220745390646167383153f,1.4237426982899421545881f,\ +1.4349026977530163762253f,1.0862935323189089054097f,0.7475103036060971595234f,\ +0.9640755596017442918821f,1.4756182374730877349123f,0.8992686396344509169865f,\ +1.0456992348735927311765f,1.316872193719026640224f,1.0937098269572853581622f,\ +0.3787889502350130777053f,1.1777575502770252224849f,1.466927792635024818679f,\ +1.198998549247170863907f,0.9317214709279717510526f,0.3994553068013038665818f,\ +0.9996993047110468433303f,1.0533682169916682713762f,1.1680862767422879322510f,\ +1.0968093743281353003027f,1.475564759332087749755f,0.5739680940616843640711f,\ +1.2132055498728515630091f,1.277641763762892734846f,1.2372616699165408515881f,\ +0.4908185034943345348424f,1.0764535824324550361553f,1.3508749145869605179371f,\ +1.282220574891209663448f,0.8033914160655766245611f,0.4529330910646225394345f,\ +1.3777085436870080137339f,0.9478851551815749010288f,1.2208388985822435923723f,\ +1.263077873207383738929f,1.284175149159334061721f,1.023436357706823729430f,\ +0.5626793926847969418148f,0.6728398111486185717567f,0.7545922256887819257187f,\ +1.5396608871785673056110f,0.5335122401588628937574f,1.0275094129340511805992f,\ +0.8338356239168208672297f,1.0426578447465559840168f,1.4617456602888381222982f,\ +0.6682797094798482717692f,1.3426136823908161321839f,1.3312882615539098907220f,\ +1.4697575902556172522395f,0.7877417380659905710161f,0.7165102522491650915981f,\ +1.3183788402186256139004f,0.4738958779540429211430f} + void sacoshsTest(void) { - printf(">> Float scalar\n"); - printf("sacoshs(0) = %f\n", sacoshs(0.0f)); - printf("sacoshs(PI) = %f\n", sacoshs(FPI)); - printf("sacoshs(PI/2) = %f\n", sacoshs(FPI/2)); - printf("sacoshs(PI/3) = %f\n", sacoshs(FPI/3)); - printf("sacoshs(PI/4) = %f\n", sacoshs(FPI/4)); - printf("sacoshs(PI/6) = %f\n", sacoshs(FPI/6)); - printf("sacoshs(-PI) = %f\n", sacoshs(-FPI)); - printf("sacoshs(-PI/2) = %f\n", sacoshs(-FPI/2)); - printf("sacoshs(-PI/3) = %f\n", sacoshs(-FPI/3)); - printf("sacoshs(-PI/4) = %f\n", sacoshs(-FPI/4)); - printf("sacoshs(-PI/6) = %f\n", sacoshs(-FPI/6)); + float In[]=IN; + float Res[]=RESULT; + float out; + int i = 0; + + for (i=0;i<200;i++){ + if (In[i]<1) assert(1); + else { + out = sacoshs(In[i]); + assert ( ( fabs(out-Res[i]) / fabs(out) ) <1e-6); + } + } } void cacoshsTest(void) { - floatComplex pi_pi = FloatComplex(FPI, FPI); - floatComplex pi_2_pi_2 = FloatComplex(FPI/2, FPI/2); - floatComplex pi_2_pi_3 = FloatComplex(FPI/2, FPI/3); - floatComplex pi_2_pi_4 = FloatComplex(FPI/2, FPI/4); - floatComplex out; - - printf(">> Float Complex scalar\n"); - out = cacoshs(pi_pi); - printf("cacoshs(PI + I*PI) = %f + I * %f\n", creals(out), cimags(out)); - out = cacoshs(pi_2_pi_2); - printf("cacoshs(PI/2 + I*PI/2) = %f + I * %f\n", creals(out), cimags(out)); - out = cacoshs(pi_2_pi_3); - printf("cacoshs(PI/2 + I*PI/3) = %f + I * %f\n", creals(out), cimags(out)); - out = cacoshs(pi_2_pi_4); - printf("cacoshs(PI/2 + I*PI/4) = %f + I * %f\n", creals(out), cimags(out)); + float InR[]=CRIN; + float InI[]=CIIN; + float ResR[]=CRRESULT; + float ResI[]=CIRESULT; + int i=0; + floatComplex in,out; + + for (i=0;i<200;i++){ + in=FloatComplex(InR[i],InI[i]); + out=cacoshs(in); + assert( ( fabs(creals(out)-ResR[i]) / fabs(creals(out)) ) <1e-6); + assert( ( fabs(cimags(out)-ResI[i]) / fabs(cimags(out)) ) <1e-6); + } } void sacoshaTest(void) { - float out[5]; - float in[5] = {FPI, FPI/2, FPI/3, FPI/4, FPI/6}; + float In[]=IN; + float Res[]=RESULT; + float out[200],in[200]; int i = 0; - printf(">> Float array\n"); - sacosha(in, 5, out); - for (i = 0 ; i < 5 ; ++i) - printf("sacosha(array) = %f\n", out[i]); + for (i=0;i<200;i++){ + in[i]=In[i]; + } + + sacosha(in,200,out); + for (i=0;i<200;i++){ + if (isnan(out[i])) assert(1); + else{ + assert ( ( fabs(out[i]-Res[i]) / fabs(out[i]) ) <1e-6); + } + } } void cacoshaTest(void) { - floatComplex in[4]; - floatComplex out[4]; - int i = 0; - - in[0] = FloatComplex(FPI, FPI); - in[1] = FloatComplex(FPI/2, FPI/2); - in[2] = FloatComplex(FPI/2, FPI/3); - in[3] = FloatComplex(FPI/2, FPI/4); + float InR[]=CRIN; + float InI[]=CIIN; + float ResR[]=CRRESULT; + float ResI[]=CIRESULT; + int i=0; + floatComplex in[200],out[200]; - cacosha(in, 4, out); - printf(">> Float Complex Array\n"); - for (i = 0 ; i < 4 ; ++i) - printf("cacosha(array) = %e + I * %e\n", creals(out[i]), cimags(out[i])); + for (i=0;i<200;i++){ + in[i]=FloatComplex(InR[i],InI[i]); + } + cacosha(in,200,out); + for (i=0;i<200;i++){ + assert( ( fabs(creals(out[i])-ResR[i]) / fabs(creals(out[i])) ) <1e-6); + assert( ( fabs(cimags(out[i])-ResI[i]) / fabs(cimags(out[i])) ) <1e-6); + } } int testAcosh(void) { |