summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortorset2008-12-03 09:08:30 +0000
committertorset2008-12-03 09:08:30 +0000
commit7950bb92612464429ceb4ff63e2d2f6fd555498e (patch)
tree1c88e7c330f796744013ed64b9092696ff42e4e6
parent583da4dff7a096d49e6e1031b78381f645324ca8 (diff)
downloadscilab2c-7950bb92612464429ceb4ff63e2d2f6fd555498e.tar.gz
scilab2c-7950bb92612464429ceb4ff63e2d2f6fd555498e.tar.bz2
scilab2c-7950bb92612464429ceb4ff63e2d2f6fd555498e.zip
Update tan and tanh tests
-rw-r--r--src/elementaryFunctions/tan/testDoubleTan.c495
-rw-r--r--src/elementaryFunctions/tan/testFloatTan.c490
-rw-r--r--src/elementaryFunctions/tan/testTan.h10
-rw-r--r--src/elementaryFunctions/tanh/testDoubleTanh.c485
-rw-r--r--src/elementaryFunctions/tanh/testFloatTanh.c483
-rw-r--r--src/elementaryFunctions/tanh/testTanh.h1
6 files changed, 1874 insertions, 90 deletions
diff --git a/src/elementaryFunctions/tan/testDoubleTan.c b/src/elementaryFunctions/tan/testDoubleTan.c
index 74be72e9..66941024 100644
--- a/src/elementaryFunctions/tan/testDoubleTan.c
+++ b/src/elementaryFunctions/tan/testDoubleTan.c
@@ -1,6 +1,6 @@
/*
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) 2006-2008 - INRIA - Bruno JOFRET
+ * Copyright (C) 2008 - INRIA - Arnaud TORSET
*
* This file must be used under the terms of the CeCILL.
* This source file is licensed as described in the file COPYING, which
@@ -10,35 +10,484 @@
*
*/
-#include <math.h>
#include "testTan.h"
-double dtans(double);
-
-void dtansTest() {
- printf(">> Double scalar\n");
- printf("dtans(0) = %e\n", dtans(0.0));
- printf("dtans(PI) = %e\n", dtans(DPI));
- printf("dtans(PI/2) = %e\n", dtans(DPI/2));
- printf("dtans(PI/3) = %e\n", dtans(DPI/3));
- printf("dtans(PI/4) = %e\n", dtans(DPI/4));
- printf("dtans(PI/6) = %e\n", dtans(DPI/6));
- printf("dtans(-PI) = %e\n", dtans(-DPI));
- printf("dtans(-PI/2) = %e\n", dtans(-DPI/2));
- printf("dtans(-PI/3) = %e\n", dtans(-DPI/3));
- printf("dtans(-PI/4) = %e\n", dtans(-DPI/4));
- printf("dtans(-PI/6) = %e\n", dtans(-DPI/6));
+#define SOURCE {0.7062616096809506416321,0.4090520101599395275116,0.3011248558759689331055,\
+0.1880126395262777805328,0.1796709178015589714050,0.2828889950178563594818,\
+0.7232380937784910202026,0.7360379849560558795929,0.1852612206712365150452,\
+0.7703790138475596904755,0.1914967410266399383545,0.7521587223745882511139,\
+0.6205883463844656944275,0.2807604051195085048676,0.2289868686348199844360,\
+0.5049233403988182544708,0.8354099662974476814270,0.8174716415815055370331,\
+0.0030740275979042053223,0.3677616142667829990387,0.8278525872156023979187,\
+0.72754097869619727135,0.5323124285787343978882,0.9267726917751133441925,\
+0.9542504185810685157776,0.3162104780785739421845,0.5789009965956211090088,\
+0.6881225542165338993073,0.3714061146602034568787,0.1705444059334695339203,\
+0.1954363007098436355591,0.978800852317363023758,0.9300233917310833930969,\
+0.5357720064930617809296,0.3947123587131500244141,0.1344871171750128269196,\
+0.7380615202710032463074,0.588114650454372167587,0.9113173168152570724487,\
+0.5682763461954891681671,0.1127616921439766883850,0.9478473584167659282684,\
+0.5237770043313503265381,0.8140139640308916568756,0.1400952627882361412048,\
+0.2763446993194520473480,0.9059953633695840835571,0.1379901585169136524200,\
+0.5603838684037327766419,0.3008610638789832592011,0.4767417535185813904,\
+0.8127435916103422641754,0.1988414181396365165710,0.1107953130267560482025,\
+0.2159351315349340438843,0.6467244853265583515167,0.6597879612818360328674,\
+0.0691898013465106487274,0.9164751060307025909424,0.8635670826770365238190,\
+0.5032854294404387474060,0.1832137755118310451508,0.8403698671609163284302,\
+0.9247214836068451404572,0.6229452537372708320618,0.2773811477236449718475,\
+0.2479109913110733032227,0.3891948559321463108063,0.0436578569933772087097,\
+0.8132526441477239131928,0.7686451207846403121948,0.4041520212776958942413,\
+0.8579940209165215492249,0.6993723283521831035614,0.0828925184905529022217,\
+0.9201254160143435001373,0.5200281282886862754822,0.9351884997449815273285,\
+0.8825624976307153701782,0.2245844271965324878693,0.2153332801535725593567,\
+0.4327089670114219188690,0.5800157263875007629395,0.8876141034997999668121,\
+0.5258982880041003227234,0.859640696551650762558,0.7337234076112508773804,\
+0.7134532411582767963409,0.1087165409699082374573,0.8477638359181582927704,\
+0.6594733335077762603760,0.7916418449021875858307,0.6067967480048537254334,\
+0.4102901122532784938812,0.1958728153258562088013,0.241527963895350694656,\
+0.5113455550745129585266,0.9119556057266891002655,0.0928984880447387695313,\
+0.7438839026726782321930,0.1938720373436808586121,0.4355978979729115962982,\
+0.9922429900616407394409,0.4533818070776760578156,0.8269640663638710975647,\
+0.8889675955288112163544,0.4682085178792476654053,0.3856786251999437808991,\
+0.4124865522608160972595,0.6955242282710969448090,0.0978972557932138442993,\
+0.8728604433126747608185,0.6359515609219670295715,0.4129665228538215160370,\
+0.0294486805796623229980,0.1809961968101561069489,0.7658103061839938163757,\
+0.1232470511458814144135,0.0170737411826848983765,0.8835507561452686786652,\
+0.3164170170202851295471,0.9378212536685168743134,0.3916359134018421173096,\
+0.0844073877669870853424,0.6934146797284483909607,0.4618808380328118801117,\
+0.9355291295796632766724,0.0842495900578796863556,0.5402926551178097724915,\
+0.5613215523771941661835,0.1306025832891464233398,0.5840523042716085910797,\
+0.0048661706969141960144,0.2761953338049352169037,0.7478824090212583541870,\
+0.0194325004704296588898,0.6444276878610253334045,0.2243968318216502666473,\
+0.2478402368724346160889,0.1196091384626924991608,0.1883201440796256065369,\
+0.3393343067727982997894,0.959958622232079505920,0.2847225037403404712677,\
+0.8766820700839161872864,0.2853349032811820507050,0.5103433504700660705566,\
+0.8752629184164106845856,0.5941145820543169975281,0.3945342986844480037689,\
+0.4661326166242361068726,0.0073588271625339984894,0.5170202488079667091370,\
+0.4690007264725863933563,0.6654530800879001617432,0.9476742581464350223541,\
+0.4933638339862227439880,0.2918433747254312038422,0.2016727942973375320435,\
+0.7016656589694321155548,0.8736049132421612739563,0.191055159550160169601,\
+0.5307010114192962646484,0.8889481076039373874664,0.0115523664280772209167,\
+0.4998398735187947750092,0.6700848620384931564331,0.4995208983309566974640,\
+0.1538907447829842567444,0.2571737091057002544403,0.9586529098451137542725,\
+0.6246025026775896549225,0.9371285131201148033142,0.9923511571250855922699,\
+0.3454555813223123550415,0.7558249053545296192169,0.2107181670144200325012,\
+0.9372652801685035228729,0.6767524704337120056152,0.7465373151935636997223,\
+0.4050982249900698661804,0.5101723610423505306244,0.9497965183109045028687,\
+0.0289692510850727558136,0.1634070957079529762268,0.4146909262053668498993,\
+0.0021650679409503936768,0.1810030029155313968658,0.4556188201531767845154,\
+0.1977851442061364650726,0.6053877938538789749146,0.4363054675050079822540,\
+0.8938506888225674629211,0.6104825991205871105194,0.4316215068101882934570,\
+0.2315693595446646213532,0.4675927339121699333191,0.6150764389894902706146,\
+0.8621218334883451461792,0.3846137975342571735382}
+
+#define RESULT {0.8530491813252144561730,0.4335045992710032103368,0.3105691712500722179158,\
+0.1902597554084684006170,0.1816295703181560194928,0.2906848138476661458363,\
+0.8828132281173867168533,0.9058504084575731418738,0.1874102230574337113467,\
+0.9704039825071290037428,0.193872386487773856745,0.9356368085981127125095,\
+0.7147975865621483126944,0.2883777870673323029394,0.233074941053011769343,\
+0.5527124758136455762170,1.1053818146408691536209,1.0662960354617996294735,\
+0.0030740372807646679752,0.3852902674825339213172,1.0887291048642380175693,\
+0.8904988483295813717078,0.589027514944382324380,1.3318828819928720808008,\
+1.4110197782284186196478,0.3271889768526293207351,0.6535988324182537834162,\
+0.8221846610900451768345,0.3894816929387301396304,0.1722173220386573888607,\
+0.1979631660252146874157,1.4871003608159341080608,1.3409392796872054987034,\
+0.5936969391438152721108,0.4165742349308056979851,0.1353038396146245825324,\
+0.9095411562053630216695,0.666828524289825752547,1.2898724607003566600127,\
+0.6385394321030002373618,0.1132420646312260748001,1.3920395973271377787484,\
+0.5775879319584731330650,1.058934135979150648055,0.141019050913288951365,\
+0.2836009152345423944830,1.2757925164705434806223,0.1388727177433937698403,\
+0.6274844177211460483079,0.3102799593553379198241,0.5164764951302321938087,\
+1.0562428612021228513385,0.2015041286208432702587,0.1112509099475587071026,\
+0.2193551393571971375174,0.7550487488328985197228,0.7757652108685924030596,\
+0.0693004223106622879724,1.3037037706937266712259,1.1699705921283873877314,\
+0.550576129776577216646,0.1852916762694652719201,1.1164629082914852009623,\
+1.3262085052804502005586,0.7183647379901514362643,0.2847210542962326229599,\
+0.2531178933037822043062,0.4101140401836267934677,0.0436856155719798008863,\
+1.0573204171612526902635,0.9670429620877326604145,0.4276960657258361830913,\
+1.156854335998896532445,0.8412159741625684361566,0.0830828979444599852178,\
+1.3136054718047147638060,0.5725991803557812787062,1.355492790615370424234,\
+1.2159959299593459114419,0.2284380696339281535678,0.2187244120791704826701,\
+0.4619038629088654257515,0.6551909258647544698206,1.228594570395200147317,\
+0.5804203670779729540286,1.1607121297665823345113,0.9016453790519162181383,\
+0.8655510240366158791758,0.1091468929729377396187,1.133211951033040509884,\
+0.7752613593928633362040,1.0125659843026109108166,0.6941614960626277808231,\
+0.4349761638068749824981,0.1984168266250701806452,0.2463367776963759914199,\
+0.5611266025781723732,1.2915741173940875619053,0.0931666557927946503703,\
+0.9202369550199469561136,0.1963381019951347117303,0.4654138557801037467954,\
+1.531152598161082067918,0.4872328317068129743817,1.0867892686527245160732,\
+1.231996743210198141938,0.5057142067082607272965,0.4060123002390389479466,\
+0.4375906817398340642455,0.8346659585500807443381,0.0982112043307575288686,\
+1.1922276352973026902760,0.7382700256000707117465,0.4381626799731911381386,\
+0.0294571964089862109448,0.1829988997674065476229,0.9615720911131384607273,\
+0.1238749003414561927761,0.0170754004466078072866,1.2184484210758381728112,\
+0.3274176417863428056876,1.3629896342945482246023,0.4129685310508503515159,\
+0.0846084171803287293789,0.8310930423770829245100,0.4977934831990530883950,\
+1.3564597268158093967827,0.0844494919835185042789,0.5998275037194918946071,\
+0.6287920720664262885791,0.1313502491565903540494,0.6609756367352789263592,\
+0.0048662091069645377339,0.2834395431640467921675,0.9276488528261589427970,\
+0.0194349468870056892034,0.7514487870197579244547,0.2282406932471093830017,\
+0.2530426070707028074480,0.1201828114589197499251,0.1905784099029704803385,\
+0.352988062986135442411,1.428231701456014857143,0.2926743123472941854324,\
+1.2015237487616485800856,0.2933392882321691486069,0.5598095809652490206787,\
+1.1980617264883439698764,0.6755313107918682336006,0.4163652909127465440164,\
+0.5031101302799753094419,0.0073589599979746594949,0.5686119631638693050491,\
+0.5067094190821778143530,0.7848798186452353720100,1.391531190313842980544,\
+0.5377167840923406938458,0.3004214213647905529214,0.2044521595617958820146,\
+0.8451397437154636316237,1.1940319015577840477960,0.1934142466999154985619,\
+0.5868590674474564172769,1.2319476773796440571829,0.0115528803708900857511,\
+0.5460945923736312268559,0.792392311128046200608,0.5456805647330320585553,\
+0.1551171962759635702955,0.2629975069837691137309,1.4242699230594764170377,\
+0.7208802037485926295091,1.3610118285291581408103,1.5315144150725372718114,\
+0.3598870449025589057790,0.9425361247426047306419,0.2138933525822492576207,\
+1.3614020090881830959972,0.8033042279594378998198,0.925149379458894971506,\
+0.4288158062140490778269,0.5595850272060393093554,1.397781375537582970736,\
+0.0289773576405878592610,0.1648772252909011803990,0.4402197018088547242343,\
+0.0021650713238892428658,0.1830059338084651376910,0.4900039273308094966986,\
+0.2004051993228692374327,0.6920756616600035604492,0.4662749757103929471036,\
+1.244365984627544330365,0.6996374475054760733173,0.4605850493651166277509,\
+0.2357993689411847226811,0.5049411785573922895054,0.7065020490746397596737,\
+1.16655281751026174142,0.4047724755535024310227}
+
+#define ZSOURCER {0.6045256052166223526001,0.9455216196365654468536,0.4476299257948994636536,\
+0.8624908211641013622284,0.1751048639416694641113,0.2067177616991102695465,\
+0.6848411662504076957703,0.1348653226159512996674,0.0069159921258687973022,\
+0.1496290047653019428253,0.5665438110008835792542,0.4359452719800174236298,\
+0.6547604538500308990479,0.3381605879403650760651,0.4259321158751845359802,\
+0.3060420057736337184906,0.7704779822379350662231,0.7058695447631180286408,\
+0.2373670237138867378235,0.8205849635414779186249,0.6789963841438293457031,\
+0.5250809141434729099274,0.3359806565567851066589,0.8941988362930715084076,\
+0.5461782198399305343628,0.7568633262999355792999,0.0259526828303933143616,\
+0.3250150899402797222138,0.6072143577039241791,0.8756139636971056461334,\
+0.2962085595354437828064,0.4229678637348115444183,0.4243144039064645767212,\
+0.7620028969831764698029,0.3622896494343876838684,0.5658242437057197093964,\
+0.6424440070986747741699,0.7580267959274351596832,0.2531452132388949394226,\
+0.5266989110969007015228,0.2118590380996465682983,0.4779220153577625751495,\
+0.1615962767973542213440,0.9168031658045947551727,0.5461866445839405059815,\
+0.4686870560981333255768,0.7772213732823729515076,0.5871783248148858547211,\
+0.5848031807690858840942,0.3139644009061157703400,0.3204141603782773017883,\
+0.3331634956412017345429,0.2282590121030807495117,0.2750317254103720188141,\
+0.4963629124686121940613,0.7453477247618138790131,0.1155001949518918991089,\
+0.0626524840481579303741,0.0877018878236413002014,0.5507565210573375225067,\
+0.2116370312869548797607,0.8335358710028231143951,0.4045845707878470420837,\
+0.2880227542482316493988,0.1750094983726739883423,0.0051561561413109302521,\
+0.3109287889674305915833,0.6602919283322989940643,0.9722995534539222717285,\
+0.9826813959516584873200,0.0455837054178118705750,0.4096118300221860408783,\
+0.7104403134435415267944,0.3917615194804966449738,0.5571686858311295509338,\
+0.0565565521828830242157,0.1540721096098423004150,0.9109257892705500125885,\
+0.5713340407237410545349,0.3488348922692239284515,0.8972954172641038894653,\
+0.2973396372981369495392,0.1091936426237225532532,0.7626331257633864879608,\
+0.6584706604480743408203,0.6996708759106695652008,0.6756794182583689689636,\
+0.9004421546123921871185,0.6668148916214704513550,0.8518152837641537189484,\
+0.8365677157416939735413,0.1291190306656062602997,0.6095453463494777679443,\
+0.2412315667606890201569,0.4029275467619299888611,0.3019328541122376918793,\
+0.1083198729902505874634,0.8456356939859688282013,0.9417407037690281867981,\
+0.9083450469188392162323,0.1937242373824119567871,0.5318046086467802524567,\
+0.8314437521621584892273,0.4952740012668073177338,0.7465563025325536727905,\
+0.7102393140085041522980,0.5811418974772095680237,0.7035941029898822307587,\
+0.3746570833027362823486,0.3394373343326151371002,0.6322447275742888450623,\
+0.7636191300116479396820,0.6940386760979890823364,0.8735245508141815662384,\
+0.3612738298252224922180,0.7933200257830321788788,0.4830590635538101196289,\
+0.2469964125193655490875,0.5025922833010554313660,0.7430270477198064327240,\
+0.6783937942236661911011,0.4903185223229229450226,0.709806025959551334381,\
+0.3303662906400859355927,0.6815545372664928436279,0.0701365978457033634186,\
+0.4745870968326926231384,0.8091805852018296718597,0.9447045121341943740845,\
+0.5478458073921501636505,0.1216687532141804695129,0.9161847713403403759003,\
+0.3045207932591438293457,0.6502694808878004550934,0.0987624628469347953796,\
+0.8391053467057645320892,0.0328534897416830062866,0.3461971958167850971222,\
+0.2801467711105942726135,0.5500544901005923748016,0.0729318000376224517822,\
+0.0225322381593286991119,0.50267804320901632309,0.3478884599171578884125,\
+0.4298669416457414627075,0.3537984383292496204376,0.0529730813577771186829,\
+0.9533003675751388072968,0.1842019557952880859375,0.958756382111459970474,\
+0.3245136169716715812683,0.0003973259590566158295,0.0972583871334791183472,\
+0.4378789965994656086,0.3634226778522133827210,0.2685119728557765483856,\
+0.2770298384130001068115,0.8854365111328661441803,0.5216628303751349449158,\
+0.4979983693920075893,0.8733724001795053482056,0.4699407932348549365997,\
+0.9364062966778874397278,0.1337622734718024730682,0.2712419554591178894043,\
+0.1766990595497190952301,0.0543269468471407890320,0.8402757882140576839447,\
+0.7507283594459295272827,0.3062269617803394794464,0.9195641661062836647034,\
+0.1318263853900134563446,0.0826364941895008087158,0.8222710476256906986237,\
+0.4441085970029234886169,0.9617503038607537746429,0.0283641982823610305786,\
+0.1431905967183411121368,0.3793597565963864326477,0.6144003230147063732147,\
+0.2128270715475082397461,0.4704488315619528293610,0.2076055286452174186707,\
+0.7435979112051427364349,0.3391801547259092330933,0.2479635034687817096710,\
+0.6721735307946801185608,0.9013197491876780986786,0.2140864841639995574951,\
+0.8460668534971773624420,0.1650043567642569541931,0.4003686285577714443207,\
+0.5522825215011835098267,0.0638249483890831470490,0.6903966935351490974426,\
+0.8547787251882255077362,0.0291904583573341369629,0.5434663915075361728668,\
+0.6236743135377764701843,0.2417052476666867733002}
+
+#define ZSOURCEI {0.5503273960202932357788,0.6906704087741672992706,0.9835249418392777442932,\
+0.8285484607331454753876,0.2062614001333713531494,0.1944643096067011356354,\
+0.4367609983310103416443,0.8090620837174355983734,0.8818644303828477859497,\
+0.7404803228564560413361,0.7542522149160504341126,0.9921960639767348766327,\
+0.9886121451854705810547,0.0113218077458441257477,0.9367801276966929435730,\
+0.3874237253330647945404,0.2886805813759565353394,0.567788839805871248245,\
+0.7295644441619515419006,0.0303032915107905864716,0.2795897088944911956787,\
+0.7047131718136370182037,0.7442112853750586509705,0.8920237845741212368012,\
+0.1081438604742288589478,0.8751525697298347949982,0.9068333031609654426575,\
+0.2166852983646094799042,0.4824190363287925720215,0.7766945236362516880035,\
+0.4510916722938418388367,0.1300636469386518001556,0.5505470838397741317749,\
+0.6936193336732685565949,0.1749099576845765113831,0.8636093880049884319305,\
+0.2150467522442340850830,0.1886725709773600101471,0.1796098565682768821716,\
+0.4374312213622033596039,0.8514516223222017288208,0.7381969136185944080353,\
+0.8102188156917691230774,0.1460137623362243175507,0.8999849110841751098633,\
+0.4043733575381338596344,0.0156995235010981559753,0.6904196902178227901459,\
+0.2990311514586210250855,0.1383218024857342243195,0.8478512773290276527405,\
+0.3007262717001140117645,0.229154746979475021362,0.8078110129572451114655,\
+0.3176332255825400352478,0.6924462593160569667816,0.1364154014736413955689,\
+0.5433279541321098804474,0.3276594849303364753723,0.2006831648759543895721,\
+0.5037304237484931945801,0.4962565028108656406403,0.8996161324903368949890,\
+0.9357709079049527645111,0.3390339072793722152710,0.6029155333526432514191,\
+0.4153500730171799659729,0.3041478390805423259735,0.8489827848970890045166,\
+0.4482063786126673221588,0.0903797810897231101990,0.7382151386700570583344,\
+0.2669597584754228591919,0.8226196658797562122345,0.3985779182985424995422,\
+0.9789295899681746959686,0.3041231036186218261719,0.0663515278138220310211,\
+0.6667758254334330558777,0.7548807277344167232513,0.1922533493489027023315,\
+0.7942791883833706378937,0.5580398896709084510803,0.2016023616306483745575,\
+0.787146832793951034546,0.0955459238030016422272,0.6623697867617011070252,\
+0.864868474658578634262,0.7013061288744211196899,0.8015053984709084033966,\
+0.9135685982182621955872,0.6317234965972602367401,0.9346773549914360046387,\
+0.9157753759063780307770,0.0510348035022616386414,0.4329969524405896663666,\
+0.9721843507140874862671,0.8001508046872913837433,0.8452261472120881080627,\
+0.0610524858348071575165,0.8168097324669361114502,0.2101262793876230716705,\
+0.3055453812703490257263,0.9465212575159966945648,0.9269728232175111770630,\
+0.7737778765149414539337,0.5893978821113705635071,0.2377697187475860118866,\
+0.5269544571638107299805,0.0077543654479086399078,0.8311711428686976432800,\
+0.0268517597578465938568,0.2591186594218015670776,0.4641277943737804889679,\
+0.6098861405625939369202,0.0656952331773936748505,0.6466812007129192352295,\
+0.1018534512259066104889,0.2742705782875418663025,0.8162728524766862392426,\
+0.3357750270515680313110,0.4765891996212303638458,0.8440040023997426033020,\
+0.1785074654035270214081,0.5855625644326210021973,0.8426241897977888584137,\
+0.7058847947046160697937,0.7396617024205625057221,0.9751448985189199447632,\
+0.7606669445522129535675,0.8236690396443009376526,0.8889620001427829265595,\
+0.7960178293287754058838,0.3052428201772272586823,0.6803312664851546287537,\
+0.6412069997750222682953,0.0988248009234666824341,0.4654508423991501331329,\
+0.6714970665052533149719,0.5131103205494582653046,0.8631567060947418212891,\
+0.8328299173153936862946,0.1687975851818919181824,0.2961277081631124019623,\
+0.2591485660523176193237,0.1700844173319637775421,0.9718958893790841102600,\
+0.0695185582153499126434,0.4696230851113796234131,0.9544191421009600162506,\
+0.3679352095350623130798,0.2973918146453797817230,0.0415310803800821304321,\
+0.4892336544580757617950,0.5171590568497776985169,0.3534862431697547435761,\
+0.2354387864470481872559,0.6779259913600981235504,0.3834532154724001884460,\
+0.3174350797198712825775,0.3418120350688695907593,0.0535557498224079608917,\
+0.9285596096888184547424,0.3862650538794696331024,0.4328473098576068878174,\
+0.1581165478564798831940,0.7887120461091399192810,0.7448797873221337795258,\
+0.5185996759682893753052,0.8651678604073822498322,0.1524438308551907539368,\
+0.2392775672487914562225,0.5761575847864151000977,0.7395762302912771701813,\
+0.0583172617480158805847,0.6962534948252141475678,0.4206145536154508590698,\
+0.0281158541329205036163,0.8313249954953789710999,0.2333360086195170879364,\
+0.8865877203643321990967,0.3746785433031618595123,0.87671328987926244736,\
+0.4027077830396592617035,0.2890332732349634170532,0.8538430598564445972443,\
+0.5499771209433674812317,0.5128610017709434032440,0.6321087554097175598145,\
+0.4165538274683058261871,0.3217771751806139945984,0.9717370062135159969330,\
+0.5348322447389364242554,0.3416590173728764057159,0.9565287167206406593323,\
+0.9951003189198672771454,0.3422884084284305572510,0.7870580093003809452057,\
+0.9234123295173048973084,0.5238970420323312282562}
+
+#define ZRESULTR {0.4622549506274005182149,0.52703543104286754151,0.1827556517526441881572,\
+0.3854184255425531224759,0.1693791983359425601385,0.2016515153621968869935,\
+0.6100517388487384229379,0.0743340542544716487150,0.0034555684806514769605,\
+0.0902156984479902251950,0.3241135973562218053345,0.1760110212342378688266,\
+0.2452633832131958513401,0.3516179963878625636120,0.1885474403955421374146,\
+0.2692513911062309750477,0.8321367071581778906975,0.5264631357733180472280,\
+0.1448019483693787634593,1.0708552390146606203558,0.7125992289896019293849,\
+0.3253494174977278885486,0.2001345889867806593365,0.343199696050296210181,\
+0.5982400693418048476246,0.3303593637710269814711,0.0125118697596118978038,\
+0.3199717638395740970658,0.5061472843217617034739,0.4295842023027047207329,\
+0.2465282516242081889413,0.441112206343829249544,0.3219119603275076846316,\
+0.4595743499683106469966,0.3660794615870797685808,0.2720878846188879984780,\
+0.6972660654407580871350,0.8861718442431221198774,0.2499974132956042649489,\
+0.4568598941148580561134,0.1097116340955419794279,0.2836394335106861008811,\
+0.0888432657814137161090,1.2330526748467487418992,0.2488174581727523593244,\
+0.4160762578947443945943,0.9833017375902159962209,0.3688379479484371614717,\
+0.5845995722843282393910,0.3179368621558099627933,0.1652197278936747004696,\
+0.3133619394599517771205,0.2199213980004723900663,0.150759611907827051347,\
+0.4771998617931776376366,0.4525965638532219448287,0.1138559184839921800680,\
+0.0472861014102091622990,0.0790630167394415495075,0.5814611436078345185763,\
+0.1667238962880819019841,0.6920944670661310915705,0.1906861485587098559158,\
+0.1307919466930784202496,0.1574308648240616004266,0.0036575163164140646332,\
+0.2674520780172894851567,0.6735689731298903915047,0.378774827327838792268,\
+0.8834054385824835486929,0.0452439501756518244746,0.2447083220521515389834,\
+0.7633578523125562620422,0.2078243181020067997800,0.5055052026142557997090,\
+0.0245040445592060660007,0.1414831146311008314154,1.2738839652002900137973,\
+0.3722074374977639710238,0.2046196449929307825677,1.143222534499549469800,\
+0.1658122283683383380026,0.0812521009905448621247,0.8856778536505196530726,\
+0.3496455120553698669994,0.8287603905975037266174,0.4374379182437952429119,\
+0.3632754548631693114480,0.4065565887334736672187,0.4042071334744706256892,\
+0.3223163664494689273354,0.0887658719864259648791,0.2562423384997916109285,\
+0.1135016065651749256338,0.4249393631867034448746,0.2555315607462380622650,\
+0.0473167224981555015195,0.4038863981107233547263,0.3812800945055046519805,\
+1.2694612396144742128001,0.1054006198029389801407,0.5548755616229488207836,\
+0.9047138472187979951755,0.2120875774680325287491,0.2977497737582537329359,\
+0.3793852632159244175902,0.4216852391721442327999,0.7719661269702553507699,\
+0.2909766448133100369411,0.3530800537032807717708,0.3144419867733496687379,\
+0.9560423318471079623393,0.7455173297127551945707,0.7647697575929581770282,\
+0.2552307563419532465687,1.0071246904841177904899,0.3254058309317561237251,\
+0.2493837937457981657197,0.4995060266703120754883,0.3635478722517977989703,\
+0.6755663854502449439110,0.4060422219779377672744,0.3354119513743121228089,\
+0.3310200365444659897918,0.4956952069626366363941,0.0369899619573449203735,\
+0.2949888674609426608697,0.4417162785414836534415,0.2901327037722924995222,\
+0.3113814080983853260776,0.0657705595388366343057,0.3468932593605689174154,\
+0.1693138876335541220808,0.6604383641650866110240,0.0641696842881706724926,\
+0.5420718455446384975716,0.0325460783396350344931,0.2856018727381676169941,\
+0.1837045440337584378820,0.4394912998560263073244,0.0373805900188774464787,\
+0.0120513737523088183129,0.5299342664002043568061,0.3290248923514364487453,\
+0.4232813397541956845771,0.3574733895472496092438,0.0231976592717455104564,\
+1.388138041383984555566,0.1495922092250967505578,0.3027074594945061147833,\
+0.2906013786665496145822,0.0003641583735012103801,0.0973965246964013098285,\
+0.3558085542679609303285,0.2850038039654740895657,0.2413433027684695197923,\
+0.2679865438260303767137,0.5240490385593890021454,0.4768351880953459742685,\
+0.479037567928660701355,0.9219838892273597430460,0.5060637477109658499686,\
+0.3200337217432840941633,0.1160441175011530240413,0.2289284118436291093346,\
+0.1740340532494602521219,0.0308192365918868102503,0.4474996159504823212139,\
+0.601992209828681956729,0.1542000078067730650666,1.2334589409579821417395,\
+0.1251630868814269104128,0.0603288006292757861271,0.4462414520672394746548,\
+0.4738309669088760500699,0.5239025685810345667193,0.0238870191275340100490,\
+0.1440610501660575526461,0.1990046768508525187880,0.6514000598731057856128,\
+0.1047897932784156715957,0.429099188123020058860,0.1037294840964696623908,\
+0.6989271583573236634734,0.3217396834648525993927,0.1276324483471362458698,\
+0.51478179757014652651,0.7241126844123151329313,0.1471790945486320945079,\
+0.7963244963417922539506,0.1499982428024713432269,0.1685430842340138735125,\
+0.4298103979039861188838,0.0569704807929593617932,0.2690745622378380996764,\
+0.2759880123858853839813,0.0260258640811948625815,0.2968457197721043328009,\
+0.2658449701658989750008,0.1869340145100120420540}
+
+#define ZRESULTI {0.6606731609576530495076,1.0352924413907944600766,0.8208009210718538728457,\
+0.9855228198847613141354,0.2094799364238341676803,0.2001711092576675676824,\
+0.6157063400955946619320,0.6758210089185754387842,0.7073690227519786599686,\
+0.6379959312114483749312,0.7691489792855270568595,0.8204717538076390370705,\
+0.8992691795054111869590,0.0127212399656787735619,0.7965072880961274748302,\
+0.4005414846539865347808,0.5078102333041875082742,0.7442675929748912011519,\
+0.6446164613619681515999,0.0651017559751383007027,0.4292463160345246220295,\
+0.7218268661973539224164,0.675831849442214971369,1.016847265460205207432,\
+0.1468976923106849463707,0.923642083424730087060,0.7198425877508842773977,\
+0.2363604106893440193193,0.6057859843456331327971,0.9859934125773722746189,\
+0.4546059235344489524167,0.1550160776744255175519,0.5737784438019621902072,\
+0.8635696530908816281880,0.1971722712896061546761,0.8187472766310414096225,\
+0.3223047939566238695441,0.3428986541358745587793,0.1891956718334251719149,\
+0.5208354545548833369750,0.7081524694874962166935,0.7203267007574796210179,\
+0.6794103936977667901331,0.3782115660166653348107,0.8246286245352181243362,\
+0.4645139855543011786487,0.0308839406628786498910,0.7450942218464524646748,\
+0.4028312748892641792509,0.1516356705950959171680,0.7277735925258916882541,\
+0.3236400086381776008970,0.2367328033923032648556,0.6968150511733807173087,\
+0.3868027398676305850245,0.8499965389936866566600,0.1373663005352325217068,\
+0.4969728656393965771088,0.3186158192908606912042,0.2687494032146487410451,\
+0.4817044586911616854685,0.8091241454316642212064,0.7745837276131475324092,\
+0.7616864033669616951272,0.3357065002058312042088,0.5391311137157557276112,\
+0.4267832806356777752832,0.4494653959304828472199,1.07409232431056356205,\
+0.9773946189840253540027,0.0903205143448218145119,0.6947943813727951445358,\
+0.4320600869989819070582,0.7345738223824911372617,0.4980076917918512258154,\
+0.753646277499480543582,0.3015650137112788620186,0.1750320030662110004638,\
+0.7223173121894863601966,0.6855367528648522723600,0.4620100861135144620917,\
+0.6944021533252422440086,0.5110335784375538148439,0.3672451576697671193905,\
+0.8344551064956932107108,0.16170594539219715347,0.7832786921268890534265,\
+1.0189285776822756268700,0.7988551639208606447440,0.9719247807905779801274,\
+0.9809763387972041392970,0.5656833224514162816732,0.8638733429144607178785,\
+0.7441066604777042403640,0.0602264440127683667314,0.4402801210484636462716,\
+0.7535199884397705272221,0.9667811691361050119298,1.0493588871220529412653,\
+0.1602121578348635611011,0.6872528304663769738170,0.2746926003887739664577,\
+0.5904217499472341756928,0.8227770718789775283852,0.9300490141104427177510,\
+0.8608967966610167055208,0.6761042332942854837796,0.3862514929365022942065,\
+0.5383206023328632738867,0.0087209580621782408633,0.8379947814437334052684,\
+0.0514162894427564812205,0.4107196425718538934646,0.8291800128662117908007,\
+0.5965153474380232578866,0.1327243053149035900695,0.6666204349503430659496,\
+0.1078852700862242136592,0.3410661266092010479589,0.8978136284012265821986,\
+0.4999590426790496699994,0.5396356462900459005638,0.8861720904164178680418,\
+0.1966865820582558155305,0.7384948934734244518907,0.6889822634082830576929,\
+0.7002461629632836803694,0.9202927678328401972507,1.0522470356995357043672,\
+0.7633410819201092989417,0.6825068129840573538658,1.032180426666563732852,\
+0.6970224139462883883311,0.4448502829538992786596,0.5954971038562514307202,\
+0.9072269118636318019355,0.0986096977623509007849,0.4792818549998886235031,\
+0.6169344532127701841162,0.5996614784596430158814,0.6997864810760641152143,\
+0.6821778350957495851148,0.2159298191152681511973,0.3221001280586711645881,\
+0.3026923795099815683862,0.1907050596442291245936,0.7504581695080775327611,\
+0.2050797642560421019109,0.4500993401191650811200,1.0616552076870116039231,\
+0.3866139253948813192530,0.2889239979563678062391,0.0419016457354280461023,\
+0.5291730503201013124937,0.5270449613735276317428,0.3620065401137618765759,\
+0.2487989439191494456249,0.9684607851607960338214,0.4659312790851565244665,\
+0.3871941948924775833696,0.6912156199525602007228,0.0672566496597855195683,\
+1.0473726182255131966770,0.3738845568372618499708,0.4336537904037139901092,\
+0.1616849585723995341713,0.6587810404999043800700,0.9478245114156004236250,\
+0.7443033774708265326581,0.7329852502477968156924,0.3960943016785423709258,\
+0.2387102372514374737378,0.5224647164810142241365,0.9310236182750510902650,\
+0.0713841738247450452448,1.0541437904171060413461,0.3977173917051313734028,\
+0.0286922698814963753056,0.7352303476692350070465,0.3345177682401353491670,\
+0.7257755336052617023412,0.4362132495206523241649,0.7201678840265979264501,\
+0.6279860575277228518232,0.3131701555376726897606,0.7154672057942548235587,\
+0.7055403294219286802758,0.90419581128384973745,0.5774063124958943582499,\
+0.748377680093745611956,0.3188837788675313866804,0.8029276503063254022408,\
+0.6186055293635583929301,0.3301554535865592887589,0.907799805701633655275,\
+1.0004593122932974313954,0.3297692664500386783288,0.774518614973831232007,\
+0.8666563831612021928663,0.5028547740750087813311}
+
+
+
+
+void dtansTest(void) {
+ double in[]=SOURCE;
+ double res[]=RESULT;
+ double out;
+ int i;
+
+ for (i=0;i<200;i++){
+ out=dtans(in[i]);
+ assert(( (fabs(out-res[i]))/(fabs(out)) )<1e-15);
+ }
+}
+
+void ztansTest(void) {
+ double inR[]=ZSOURCER;
+ double inI[]=ZSOURCEI;
+ double resR[]=ZRESULTR;
+ double resI[]=ZRESULTI;
+ doubleComplex in,out;
+ int i;
+
+ for (i=0;i<200;i++){
+ in=DoubleComplex(inR[i],inI[i]);
+ out=ztans(in);
+ assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<1e-15);
+ assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<1e-15);
+ }
+}
+
+void dtanaTest(void) {
+ double in[]=SOURCE;
+ double res[]=RESULT;
+ double out[200];
+ int i;
+
+ dtana(in,200,out);
+ for (i=0;i<200;i++){
+ assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<1e-16);
+ }
+}
+
+void ztanaTest(void) {
+ double inR[]=ZSOURCER;
+ double inI[]=ZSOURCEI;
+ double resR[]=ZRESULTR;
+ double resI[]=ZRESULTI;
+ doubleComplex *in,out[200];
+ int i;
+
+
+ in=DoubleComplexMatrix(inR,inI,200);
+ ztana(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 testTan() {
printf("\n>>>> Double Tangeant Tests\n");
dtansTest();
- /* FIXME : Implement some test here ... */
- /*
- ztansTest();
- dtanaTest();
- ztanaTest();
- */
+ ztansTest();
+ dtanaTest();
+ ztanaTest();
+
return 0;
}
diff --git a/src/elementaryFunctions/tan/testFloatTan.c b/src/elementaryFunctions/tan/testFloatTan.c
index 6f727a14..4b487887 100644
--- a/src/elementaryFunctions/tan/testFloatTan.c
+++ b/src/elementaryFunctions/tan/testFloatTan.c
@@ -1,6 +1,6 @@
/*
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ * Copyright (C) 2008 - INRIA - Arnaud TORSET
*
* This file must be used under the terms of the CeCILL.
* This source file is licensed as described in the file COPYING, which
@@ -12,30 +12,480 @@
#include "testTan.h"
-void stansTest() {
- printf(">> Float scalar\n");
- printf("stans(0) = %f\n", stans(0.0f));
- printf("stans(PI) = %f\n", stans(FPI));
- printf("stans(PI/2) = %f\n", stans(FPI/2));
- printf("stans(PI/3) = %f\n", stans(FPI/3));
- printf("stans(PI/4) = %f\n", stans(FPI/4));
- printf("stans(PI/6) = %f\n", stans(FPI/6));
- printf("stans(-PI) = %f\n", stans(-FPI));
- printf("stans(-PI/2) = %f\n", stans(-FPI/2));
- printf("stans(-PI/3) = %f\n", stans(-FPI/3));
- printf("stans(-PI/4) = %f\n", stans(-FPI/4));
- printf("stans(-PI/6) = %f\n", stans(-FPI/6));
+#define SOURCE {0.7062616096809506416321f,0.4090520101599395275116f,0.3011248558759689331055f,\
+0.1880126395262777805328f,0.1796709178015589714050f,0.2828889950178563594818f,\
+0.7232380937784910202026f,0.7360379849560558795929f,0.1852612206712365150452f,\
+0.7703790138475596904755f,0.1914967410266399383545f,0.7521587223745882511139f,\
+0.6205883463844656944275f,0.2807604051195085048676f,0.2289868686348199844360f,\
+0.5049233403988182544708f,0.8354099662974476814270f,0.8174716415815055370331f,\
+0.0030740275979042053223f,0.3677616142667829990387f,0.8278525872156023979187f,\
+0.72754097869619727135f,0.5323124285787343978882f,0.9267726917751133441925f,\
+0.9542504185810685157776f,0.3162104780785739421845f,0.5789009965956211090088f,\
+0.6881225542165338993073f,0.3714061146602034568787f,0.1705444059334695339203f,\
+0.1954363007098436355591f,0.978800852317363023758f,0.9300233917310833930969f,\
+0.5357720064930617809296f,0.3947123587131500244141f,0.1344871171750128269196f,\
+0.7380615202710032463074f,0.588114650454372167587f,0.9113173168152570724487f,\
+0.5682763461954891681671f,0.1127616921439766883850f,0.9478473584167659282684f,\
+0.5237770043313503265381f,0.8140139640308916568756f,0.1400952627882361412048f,\
+0.2763446993194520473480f,0.9059953633695840835571f,0.1379901585169136524200f,\
+0.5603838684037327766419f,0.3008610638789832592011f,0.4767417535185813904f,\
+0.8127435916103422641754f,0.1988414181396365165710f,0.1107953130267560482025f,\
+0.2159351315349340438843f,0.6467244853265583515167f,0.6597879612818360328674f,\
+0.0691898013465106487274f,0.9164751060307025909424f,0.8635670826770365238190f,\
+0.5032854294404387474060f,0.1832137755118310451508f,0.8403698671609163284302f,\
+0.9247214836068451404572f,0.6229452537372708320618f,0.2773811477236449718475f,\
+0.2479109913110733032227f,0.3891948559321463108063f,0.0436578569933772087097f,\
+0.8132526441477239131928f,0.7686451207846403121948f,0.4041520212776958942413f,\
+0.8579940209165215492249f,0.6993723283521831035614f,0.0828925184905529022217f,\
+0.9201254160143435001373f,0.5200281282886862754822f,0.9351884997449815273285f,\
+0.8825624976307153701782f,0.2245844271965324878693f,0.2153332801535725593567f,\
+0.4327089670114219188690f,0.5800157263875007629395f,0.8876141034997999668121f,\
+0.5258982880041003227234f,0.859640696551650762558f,0.7337234076112508773804f,\
+0.7134532411582767963409f,0.1087165409699082374573f,0.8477638359181582927704f,\
+0.6594733335077762603760f,0.7916418449021875858307f,0.6067967480048537254334f,\
+0.4102901122532784938812f,0.1958728153258562088013f,0.241527963895350694656f,\
+0.5113455550745129585266f,0.9119556057266891002655f,0.0928984880447387695313f,\
+0.7438839026726782321930f,0.1938720373436808586121f,0.4355978979729115962982f,\
+0.9922429900616407394409f,0.4533818070776760578156f,0.8269640663638710975647f,\
+0.8889675955288112163544f,0.4682085178792476654053f,0.3856786251999437808991f,\
+0.4124865522608160972595f,0.6955242282710969448090f,0.0978972557932138442993f,\
+0.8728604433126747608185f,0.6359515609219670295715f,0.4129665228538215160370f,\
+0.0294486805796623229980f,0.1809961968101561069489f,0.7658103061839938163757f,\
+0.1232470511458814144135f,0.0170737411826848983765f,0.8835507561452686786652f,\
+0.3164170170202851295471f,0.9378212536685168743134f,0.3916359134018421173096f,\
+0.0844073877669870853424f,0.6934146797284483909607f,0.4618808380328118801117f,\
+0.9355291295796632766724f,0.0842495900578796863556f,0.5402926551178097724915f,\
+0.5613215523771941661835f,0.1306025832891464233398f,0.5840523042716085910797f,\
+0.0048661706969141960144f,0.2761953338049352169037f,0.7478824090212583541870f,\
+0.0194325004704296588898f,0.6444276878610253334045f,0.2243968318216502666473f,\
+0.2478402368724346160889f,0.1196091384626924991608f,0.1883201440796256065369f,\
+0.3393343067727982997894f,0.959958622232079505920f,0.2847225037403404712677f,\
+0.8766820700839161872864f,0.2853349032811820507050f,0.5103433504700660705566f,\
+0.8752629184164106845856f,0.5941145820543169975281f,0.3945342986844480037689f,\
+0.4661326166242361068726f,0.0073588271625339984894f,0.5170202488079667091370f,\
+0.4690007264725863933563f,0.6654530800879001617432f,0.9476742581464350223541f,\
+0.4933638339862227439880f,0.2918433747254312038422f,0.2016727942973375320435f,\
+0.7016656589694321155548f,0.8736049132421612739563f,0.191055159550160169601f,\
+0.5307010114192962646484f,0.8889481076039373874664f,0.0115523664280772209167f,\
+0.4998398735187947750092f,0.6700848620384931564331f,0.4995208983309566974640f,\
+0.1538907447829842567444f,0.2571737091057002544403f,0.9586529098451137542725f,\
+0.6246025026775896549225f,0.9371285131201148033142f,0.9923511571250855922699f,\
+0.3454555813223123550415f,0.7558249053545296192169f,0.2107181670144200325012f,\
+0.9372652801685035228729f,0.6767524704337120056152f,0.7465373151935636997223f,\
+0.4050982249900698661804f,0.5101723610423505306244f,0.9497965183109045028687f,\
+0.0289692510850727558136f,0.1634070957079529762268f,0.4146909262053668498993f,\
+0.0021650679409503936768f,0.1810030029155313968658f,0.4556188201531767845154f,\
+0.1977851442061364650726f,0.6053877938538789749146f,0.4363054675050079822540f,\
+0.8938506888225674629211f,0.6104825991205871105194f,0.4316215068101882934570f,\
+0.2315693595446646213532f,0.4675927339121699333191f,0.6150764389894902706146f,\
+0.8621218334883451461792f,0.3846137975342571735382f}
+
+#define RESULT {0.8530491813252144561730f,0.4335045992710032103368f,0.3105691712500722179158f,\
+0.1902597554084684006170f,0.1816295703181560194928f,0.2906848138476661458363f,\
+0.8828132281173867168533f,0.9058504084575731418738f,0.1874102230574337113467f,\
+0.9704039825071290037428f,0.193872386487773856745f,0.9356368085981127125095f,\
+0.7147975865621483126944f,0.2883777870673323029394f,0.233074941053011769343f,\
+0.5527124758136455762170f,1.1053818146408691536209f,1.0662960354617996294735f,\
+0.0030740372807646679752f,0.3852902674825339213172f,1.0887291048642380175693f,\
+0.8904988483295813717078f,0.589027514944382324380f,1.3318828819928720808008f,\
+1.4110197782284186196478f,0.3271889768526293207351f,0.6535988324182537834162f,\
+0.8221846610900451768345f,0.3894816929387301396304f,0.1722173220386573888607f,\
+0.1979631660252146874157f,1.4871003608159341080608f,1.3409392796872054987034f,\
+0.5936969391438152721108f,0.4165742349308056979851f,0.1353038396146245825324f,\
+0.9095411562053630216695f,0.666828524289825752547f,1.2898724607003566600127f,\
+0.6385394321030002373618f,0.1132420646312260748001f,1.3920395973271377787484f,\
+0.5775879319584731330650f,1.058934135979150648055f,0.141019050913288951365f,\
+0.2836009152345423944830f,1.2757925164705434806223f,0.1388727177433937698403f,\
+0.6274844177211460483079f,0.3102799593553379198241f,0.5164764951302321938087f,\
+1.0562428612021228513385f,0.2015041286208432702587f,0.1112509099475587071026f,\
+0.2193551393571971375174f,0.7550487488328985197228f,0.7757652108685924030596f,\
+0.0693004223106622879724f,1.3037037706937266712259f,1.1699705921283873877314f,\
+0.550576129776577216646f,0.1852916762694652719201f,1.1164629082914852009623f,\
+1.3262085052804502005586f,0.7183647379901514362643f,0.2847210542962326229599f,\
+0.2531178933037822043062f,0.4101140401836267934677f,0.0436856155719798008863f,\
+1.0573204171612526902635f,0.9670429620877326604145f,0.4276960657258361830913f,\
+1.156854335998896532445f,0.8412159741625684361566f,0.0830828979444599852178f,\
+1.3136054718047147638060f,0.5725991803557812787062f,1.355492790615370424234f,\
+1.2159959299593459114419f,0.2284380696339281535678f,0.2187244120791704826701f,\
+0.4619038629088654257515f,0.6551909258647544698206f,1.228594570395200147317f,\
+0.5804203670779729540286f,1.1607121297665823345113f,0.9016453790519162181383f,\
+0.8655510240366158791758f,0.1091468929729377396187f,1.133211951033040509884f,\
+0.7752613593928633362040f,1.0125659843026109108166f,0.6941614960626277808231f,\
+0.4349761638068749824981f,0.1984168266250701806452f,0.2463367776963759914199f,\
+0.5611266025781723732f,1.2915741173940875619053f,0.0931666557927946503703f,\
+0.9202369550199469561136f,0.1963381019951347117303f,0.4654138557801037467954f,\
+1.531152598161082067918f,0.4872328317068129743817f,1.0867892686527245160732f,\
+1.231996743210198141938f,0.5057142067082607272965f,0.4060123002390389479466f,\
+0.4375906817398340642455f,0.8346659585500807443381f,0.0982112043307575288686f,\
+1.1922276352973026902760f,0.7382700256000707117465f,0.4381626799731911381386f,\
+0.0294571964089862109448f,0.1829988997674065476229f,0.9615720911131384607273f,\
+0.1238749003414561927761f,0.0170754004466078072866f,1.2184484210758381728112f,\
+0.3274176417863428056876f,1.3629896342945482246023f,0.4129685310508503515159f,\
+0.0846084171803287293789f,0.8310930423770829245100f,0.4977934831990530883950f,\
+1.3564597268158093967827f,0.0844494919835185042789f,0.5998275037194918946071f,\
+0.6287920720664262885791f,0.1313502491565903540494f,0.6609756367352789263592f,\
+0.0048662091069645377339f,0.2834395431640467921675f,0.9276488528261589427970f,\
+0.0194349468870056892034f,0.7514487870197579244547f,0.2282406932471093830017f,\
+0.2530426070707028074480f,0.1201828114589197499251f,0.1905784099029704803385f,\
+0.352988062986135442411f,1.428231701456014857143f,0.2926743123472941854324f,\
+1.2015237487616485800856f,0.2933392882321691486069f,0.5598095809652490206787f,\
+1.1980617264883439698764f,0.6755313107918682336006f,0.4163652909127465440164f,\
+0.5031101302799753094419f,0.0073589599979746594949f,0.5686119631638693050491f,\
+0.5067094190821778143530f,0.7848798186452353720100f,1.391531190313842980544f,\
+0.5377167840923406938458f,0.3004214213647905529214f,0.2044521595617958820146f,\
+0.8451397437154636316237f,1.1940319015577840477960f,0.1934142466999154985619f,\
+0.5868590674474564172769f,1.2319476773796440571829f,0.0115528803708900857511f,\
+0.5460945923736312268559f,0.792392311128046200608f,0.5456805647330320585553f,\
+0.1551171962759635702955f,0.2629975069837691137309f,1.4242699230594764170377f,\
+0.7208802037485926295091f,1.3610118285291581408103f,1.5315144150725372718114f,\
+0.3598870449025589057790f,0.9425361247426047306419f,0.2138933525822492576207f,\
+1.3614020090881830959972f,0.8033042279594378998198f,0.925149379458894971506f,\
+0.4288158062140490778269f,0.5595850272060393093554f,1.397781375537582970736f,\
+0.0289773576405878592610f,0.1648772252909011803990f,0.4402197018088547242343f,\
+0.0021650713238892428658f,0.1830059338084651376910f,0.4900039273308094966986f,\
+0.2004051993228692374327f,0.6920756616600035604492f,0.4662749757103929471036f,\
+1.244365984627544330365f,0.6996374475054760733173f,0.4605850493651166277509f,\
+0.2357993689411847226811f,0.5049411785573922895054f,0.7065020490746397596737f,\
+1.16655281751026174142f,0.4047724755535024310227f}
+
+#define CSOURCER {0.6045256052166223526001f,0.9455216196365654468536f,0.4476299257948994636536f,\
+0.8624908211641013622284f,0.1751048639416694641113f,0.2067177616991102695465f,\
+0.6848411662504076957703f,0.1348653226159512996674f,0.0069159921258687973022f,\
+0.1496290047653019428253f,0.5665438110008835792542f,0.4359452719800174236298f,\
+0.6547604538500308990479f,0.3381605879403650760651f,0.4259321158751845359802f,\
+0.3060420057736337184906f,0.7704779822379350662231f,0.7058695447631180286408f,\
+0.2373670237138867378235f,0.8205849635414779186249f,0.6789963841438293457031f,\
+0.5250809141434729099274f,0.3359806565567851066589f,0.8941988362930715084076f,\
+0.5461782198399305343628f,0.7568633262999355792999f,0.0259526828303933143616f,\
+0.3250150899402797222138f,0.6072143577039241791f,0.8756139636971056461334f,\
+0.2962085595354437828064f,0.4229678637348115444183f,0.4243144039064645767212f,\
+0.7620028969831764698029f,0.3622896494343876838684f,0.5658242437057197093964f,\
+0.6424440070986747741699f,0.7580267959274351596832f,0.2531452132388949394226f,\
+0.5266989110969007015228f,0.2118590380996465682983f,0.4779220153577625751495f,\
+0.1615962767973542213440f,0.9168031658045947551727f,0.5461866445839405059815f,\
+0.4686870560981333255768f,0.7772213732823729515076f,0.5871783248148858547211f,\
+0.5848031807690858840942f,0.3139644009061157703400f,0.3204141603782773017883f,\
+0.3331634956412017345429f,0.2282590121030807495117f,0.2750317254103720188141f,\
+0.4963629124686121940613f,0.7453477247618138790131f,0.1155001949518918991089f,\
+0.0626524840481579303741f,0.0877018878236413002014f,0.5507565210573375225067f,\
+0.2116370312869548797607f,0.8335358710028231143951f,0.4045845707878470420837f,\
+0.2880227542482316493988f,0.1750094983726739883423f,0.0051561561413109302521f,\
+0.3109287889674305915833f,0.6602919283322989940643f,0.9722995534539222717285f,\
+0.9826813959516584873200f,0.0455837054178118705750f,0.4096118300221860408783f,\
+0.7104403134435415267944f,0.3917615194804966449738f,0.5571686858311295509338f,\
+0.0565565521828830242157f,0.1540721096098423004150f,0.9109257892705500125885f,\
+0.5713340407237410545349f,0.3488348922692239284515f,0.8972954172641038894653f,\
+0.2973396372981369495392f,0.1091936426237225532532f,0.7626331257633864879608f,\
+0.6584706604480743408203f,0.6996708759106695652008f,0.6756794182583689689636f,\
+0.9004421546123921871185f,0.6668148916214704513550f,0.8518152837641537189484f,\
+0.8365677157416939735413f,0.1291190306656062602997f,0.6095453463494777679443f,\
+0.2412315667606890201569f,0.4029275467619299888611f,0.3019328541122376918793f,\
+0.1083198729902505874634f,0.8456356939859688282013f,0.9417407037690281867981f,\
+0.9083450469188392162323f,0.1937242373824119567871f,0.5318046086467802524567f,\
+0.8314437521621584892273f,0.4952740012668073177338f,0.7465563025325536727905f,\
+0.7102393140085041522980f,0.5811418974772095680237f,0.7035941029898822307587f,\
+0.3746570833027362823486f,0.3394373343326151371002f,0.6322447275742888450623f,\
+0.7636191300116479396820f,0.6940386760979890823364f,0.8735245508141815662384f,\
+0.3612738298252224922180f,0.7933200257830321788788f,0.4830590635538101196289f,\
+0.2469964125193655490875f,0.5025922833010554313660f,0.7430270477198064327240f,\
+0.6783937942236661911011f,0.4903185223229229450226f,0.709806025959551334381f,\
+0.3303662906400859355927f,0.6815545372664928436279f,0.0701365978457033634186f,\
+0.4745870968326926231384f,0.8091805852018296718597f,0.9447045121341943740845f,\
+0.5478458073921501636505f,0.1216687532141804695129f,0.9161847713403403759003f,\
+0.3045207932591438293457f,0.6502694808878004550934f,0.0987624628469347953796f,\
+0.8391053467057645320892f,0.0328534897416830062866f,0.3461971958167850971222f,\
+0.2801467711105942726135f,0.5500544901005923748016f,0.0729318000376224517822f,\
+0.0225322381593286991119f,0.50267804320901632309f,0.3478884599171578884125f,\
+0.4298669416457414627075f,0.3537984383292496204376f,0.0529730813577771186829f,\
+0.9533003675751388072968f,0.1842019557952880859375f,0.958756382111459970474f,\
+0.3245136169716715812683f,0.0003973259590566158295f,0.0972583871334791183472f,\
+0.4378789965994656086f,0.3634226778522133827210f,0.2685119728557765483856f,\
+0.2770298384130001068115f,0.8854365111328661441803f,0.5216628303751349449158f,\
+0.4979983693920075893f,0.8733724001795053482056f,0.4699407932348549365997f,\
+0.9364062966778874397278f,0.1337622734718024730682f,0.2712419554591178894043f,\
+0.1766990595497190952301f,0.0543269468471407890320f,0.8402757882140576839447f,\
+0.7507283594459295272827f,0.3062269617803394794464f,0.9195641661062836647034f,\
+0.1318263853900134563446f,0.0826364941895008087158f,0.8222710476256906986237f,\
+0.4441085970029234886169f,0.9617503038607537746429f,0.0283641982823610305786f,\
+0.1431905967183411121368f,0.3793597565963864326477f,0.6144003230147063732147f,\
+0.2128270715475082397461f,0.4704488315619528293610f,0.2076055286452174186707f,\
+0.7435979112051427364349f,0.3391801547259092330933f,0.2479635034687817096710f,\
+0.6721735307946801185608f,0.9013197491876780986786f,0.2140864841639995574951f,\
+0.8460668534971773624420f,0.1650043567642569541931f,0.4003686285577714443207f,\
+0.5522825215011835098267f,0.0638249483890831470490f,0.6903966935351490974426f,\
+0.8547787251882255077362f,0.0291904583573341369629f,0.5434663915075361728668f,\
+0.6236743135377764701843f,0.2417052476666867733002f}
+
+#define CSOURCEI {0.5503273960202932357788f,0.6906704087741672992706f,0.9835249418392777442932f,\
+0.8285484607331454753876f,0.2062614001333713531494f,0.1944643096067011356354f,\
+0.4367609983310103416443f,0.8090620837174355983734f,0.8818644303828477859497f,\
+0.7404803228564560413361f,0.7542522149160504341126f,0.9921960639767348766327f,\
+0.9886121451854705810547f,0.0113218077458441257477f,0.9367801276966929435730f,\
+0.3874237253330647945404f,0.2886805813759565353394f,0.567788839805871248245f,\
+0.7295644441619515419006f,0.0303032915107905864716f,0.2795897088944911956787f,\
+0.7047131718136370182037f,0.7442112853750586509705f,0.8920237845741212368012f,\
+0.1081438604742288589478f,0.8751525697298347949982f,0.9068333031609654426575f,\
+0.2166852983646094799042f,0.4824190363287925720215f,0.7766945236362516880035f,\
+0.4510916722938418388367f,0.1300636469386518001556f,0.5505470838397741317749f,\
+0.6936193336732685565949f,0.1749099576845765113831f,0.8636093880049884319305f,\
+0.2150467522442340850830f,0.1886725709773600101471f,0.1796098565682768821716f,\
+0.4374312213622033596039f,0.8514516223222017288208f,0.7381969136185944080353f,\
+0.8102188156917691230774f,0.1460137623362243175507f,0.8999849110841751098633f,\
+0.4043733575381338596344f,0.0156995235010981559753f,0.6904196902178227901459f,\
+0.2990311514586210250855f,0.1383218024857342243195f,0.8478512773290276527405f,\
+0.3007262717001140117645f,0.229154746979475021362f,0.8078110129572451114655f,\
+0.3176332255825400352478f,0.6924462593160569667816f,0.1364154014736413955689f,\
+0.5433279541321098804474f,0.3276594849303364753723f,0.2006831648759543895721f,\
+0.5037304237484931945801f,0.4962565028108656406403f,0.8996161324903368949890f,\
+0.9357709079049527645111f,0.3390339072793722152710f,0.6029155333526432514191f,\
+0.4153500730171799659729f,0.3041478390805423259735f,0.8489827848970890045166f,\
+0.4482063786126673221588f,0.0903797810897231101990f,0.7382151386700570583344f,\
+0.2669597584754228591919f,0.8226196658797562122345f,0.3985779182985424995422f,\
+0.9789295899681746959686f,0.3041231036186218261719f,0.0663515278138220310211f,\
+0.6667758254334330558777f,0.7548807277344167232513f,0.1922533493489027023315f,\
+0.7942791883833706378937f,0.5580398896709084510803f,0.2016023616306483745575f,\
+0.787146832793951034546f,0.0955459238030016422272f,0.6623697867617011070252f,\
+0.864868474658578634262f,0.7013061288744211196899f,0.8015053984709084033966f,\
+0.9135685982182621955872f,0.6317234965972602367401f,0.9346773549914360046387f,\
+0.9157753759063780307770f,0.0510348035022616386414f,0.4329969524405896663666f,\
+0.9721843507140874862671f,0.8001508046872913837433f,0.8452261472120881080627f,\
+0.0610524858348071575165f,0.8168097324669361114502f,0.2101262793876230716705f,\
+0.3055453812703490257263f,0.9465212575159966945648f,0.9269728232175111770630f,\
+0.7737778765149414539337f,0.5893978821113705635071f,0.2377697187475860118866f,\
+0.5269544571638107299805f,0.0077543654479086399078f,0.8311711428686976432800f,\
+0.0268517597578465938568f,0.2591186594218015670776f,0.4641277943737804889679f,\
+0.6098861405625939369202f,0.0656952331773936748505f,0.6466812007129192352295f,\
+0.1018534512259066104889f,0.2742705782875418663025f,0.8162728524766862392426f,\
+0.3357750270515680313110f,0.4765891996212303638458f,0.8440040023997426033020f,\
+0.1785074654035270214081f,0.5855625644326210021973f,0.8426241897977888584137f,\
+0.7058847947046160697937f,0.7396617024205625057221f,0.9751448985189199447632f,\
+0.7606669445522129535675f,0.8236690396443009376526f,0.8889620001427829265595f,\
+0.7960178293287754058838f,0.3052428201772272586823f,0.6803312664851546287537f,\
+0.6412069997750222682953f,0.0988248009234666824341f,0.4654508423991501331329f,\
+0.6714970665052533149719f,0.5131103205494582653046f,0.8631567060947418212891f,\
+0.8328299173153936862946f,0.1687975851818919181824f,0.2961277081631124019623f,\
+0.2591485660523176193237f,0.1700844173319637775421f,0.9718958893790841102600f,\
+0.0695185582153499126434f,0.4696230851113796234131f,0.9544191421009600162506f,\
+0.3679352095350623130798f,0.2973918146453797817230f,0.0415310803800821304321f,\
+0.4892336544580757617950f,0.5171590568497776985169f,0.3534862431697547435761f,\
+0.2354387864470481872559f,0.6779259913600981235504f,0.3834532154724001884460f,\
+0.3174350797198712825775f,0.3418120350688695907593f,0.0535557498224079608917f,\
+0.9285596096888184547424f,0.3862650538794696331024f,0.4328473098576068878174f,\
+0.1581165478564798831940f,0.7887120461091399192810f,0.7448797873221337795258f,\
+0.5185996759682893753052f,0.8651678604073822498322f,0.1524438308551907539368f,\
+0.2392775672487914562225f,0.5761575847864151000977f,0.7395762302912771701813f,\
+0.0583172617480158805847f,0.6962534948252141475678f,0.4206145536154508590698f,\
+0.0281158541329205036163f,0.8313249954953789710999f,0.2333360086195170879364f,\
+0.8865877203643321990967f,0.3746785433031618595123f,0.87671328987926244736f,\
+0.4027077830396592617035f,0.2890332732349634170532f,0.8538430598564445972443f,\
+0.5499771209433674812317f,0.5128610017709434032440f,0.6321087554097175598145f,\
+0.4165538274683058261871f,0.3217771751806139945984f,0.9717370062135159969330f,\
+0.5348322447389364242554f,0.3416590173728764057159f,0.9565287167206406593323f,\
+0.9951003189198672771454f,0.3422884084284305572510f,0.7870580093003809452057f,\
+0.9234123295173048973084f,0.5238970420323312282562f}
+
+#define CRESULTR {0.4622549506274005182149f,0.52703543104286754151f,0.1827556517526441881572f,\
+0.3854184255425531224759f,0.1693791983359425601385f,0.2016515153621968869935f,\
+0.6100517388487384229379f,0.0743340542544716487150f,0.0034555684806514769605f,\
+0.0902156984479902251950f,0.3241135973562218053345f,0.1760110212342378688266f,\
+0.2452633832131958513401f,0.3516179963878625636120f,0.1885474403955421374146f,\
+0.2692513911062309750477f,0.8321367071581778906975f,0.5264631357733180472280f,\
+0.1448019483693787634593f,1.0708552390146606203558f,0.7125992289896019293849f,\
+0.3253494174977278885486f,0.2001345889867806593365f,0.343199696050296210181f,\
+0.5982400693418048476246f,0.3303593637710269814711f,0.0125118697596118978038f,\
+0.3199717638395740970658f,0.5061472843217617034739f,0.4295842023027047207329f,\
+0.2465282516242081889413f,0.441112206343829249544f,0.3219119603275076846316f,\
+0.4595743499683106469966f,0.3660794615870797685808f,0.2720878846188879984780f,\
+0.6972660654407580871350f,0.8861718442431221198774f,0.2499974132956042649489f,\
+0.4568598941148580561134f,0.1097116340955419794279f,0.2836394335106861008811f,\
+0.0888432657814137161090f,1.2330526748467487418992f,0.2488174581727523593244f,\
+0.4160762578947443945943f,0.9833017375902159962209f,0.3688379479484371614717f,\
+0.5845995722843282393910f,0.3179368621558099627933f,0.1652197278936747004696f,\
+0.3133619394599517771205f,0.2199213980004723900663f,0.150759611907827051347f,\
+0.4771998617931776376366f,0.4525965638532219448287f,0.1138559184839921800680f,\
+0.0472861014102091622990f,0.0790630167394415495075f,0.5814611436078345185763f,\
+0.1667238962880819019841f,0.6920944670661310915705f,0.1906861485587098559158f,\
+0.1307919466930784202496f,0.1574308648240616004266f,0.0036575163164140646332f,\
+0.2674520780172894851567f,0.6735689731298903915047f,0.378774827327838792268f,\
+0.8834054385824835486929f,0.0452439501756518244746f,0.2447083220521515389834f,\
+0.7633578523125562620422f,0.2078243181020067997800f,0.5055052026142557997090f,\
+0.0245040445592060660007f,0.1414831146311008314154f,1.2738839652002900137973f,\
+0.3722074374977639710238f,0.2046196449929307825677f,1.143222534499549469800f,\
+0.1658122283683383380026f,0.0812521009905448621247f,0.8856778536505196530726f,\
+0.3496455120553698669994f,0.8287603905975037266174f,0.4374379182437952429119f,\
+0.3632754548631693114480f,0.4065565887334736672187f,0.4042071334744706256892f,\
+0.3223163664494689273354f,0.0887658719864259648791f,0.2562423384997916109285f,\
+0.1135016065651749256338f,0.4249393631867034448746f,0.2555315607462380622650f,\
+0.0473167224981555015195f,0.4038863981107233547263f,0.3812800945055046519805f,\
+1.2694612396144742128001f,0.1054006198029389801407f,0.5548755616229488207836f,\
+0.9047138472187979951755f,0.2120875774680325287491f,0.2977497737582537329359f,\
+0.3793852632159244175902f,0.4216852391721442327999f,0.7719661269702553507699f,\
+0.2909766448133100369411f,0.3530800537032807717708f,0.3144419867733496687379f,\
+0.9560423318471079623393f,0.7455173297127551945707f,0.7647697575929581770282f,\
+0.2552307563419532465687f,1.0071246904841177904899f,0.3254058309317561237251f,\
+0.2493837937457981657197f,0.4995060266703120754883f,0.3635478722517977989703f,\
+0.6755663854502449439110f,0.4060422219779377672744f,0.3354119513743121228089f,\
+0.3310200365444659897918f,0.4956952069626366363941f,0.0369899619573449203735f,\
+0.2949888674609426608697f,0.4417162785414836534415f,0.2901327037722924995222f,\
+0.3113814080983853260776f,0.0657705595388366343057f,0.3468932593605689174154f,\
+0.1693138876335541220808f,0.6604383641650866110240f,0.0641696842881706724926f,\
+0.5420718455446384975716f,0.0325460783396350344931f,0.2856018727381676169941f,\
+0.1837045440337584378820f,0.4394912998560263073244f,0.0373805900188774464787f,\
+0.0120513737523088183129f,0.5299342664002043568061f,0.3290248923514364487453f,\
+0.4232813397541956845771f,0.3574733895472496092438f,0.0231976592717455104564f,\
+1.388138041383984555566f,0.1495922092250967505578f,0.3027074594945061147833f,\
+0.2906013786665496145822f,0.0003641583735012103801f,0.0973965246964013098285f,\
+0.3558085542679609303285f,0.2850038039654740895657f,0.2413433027684695197923f,\
+0.2679865438260303767137f,0.5240490385593890021454f,0.4768351880953459742685f,\
+0.479037567928660701355f,0.9219838892273597430460f,0.5060637477109658499686f,\
+0.3200337217432840941633f,0.1160441175011530240413f,0.2289284118436291093346f,\
+0.1740340532494602521219f,0.0308192365918868102503f,0.4474996159504823212139f,\
+0.601992209828681956729f,0.1542000078067730650666f,1.2334589409579821417395f,\
+0.1251630868814269104128f,0.0603288006292757861271f,0.4462414520672394746548f,\
+0.4738309669088760500699f,0.5239025685810345667193f,0.0238870191275340100490f,\
+0.1440610501660575526461f,0.1990046768508525187880f,0.6514000598731057856128f,\
+0.1047897932784156715957f,0.429099188123020058860f,0.1037294840964696623908f,\
+0.6989271583573236634734f,0.3217396834648525993927f,0.1276324483471362458698f,\
+0.51478179757014652651f,0.7241126844123151329313f,0.1471790945486320945079f,\
+0.7963244963417922539506f,0.1499982428024713432269f,0.1685430842340138735125f,\
+0.4298103979039861188838f,0.0569704807929593617932f,0.2690745622378380996764f,\
+0.2759880123858853839813f,0.0260258640811948625815f,0.2968457197721043328009f,\
+0.2658449701658989750008f,0.1869340145100120420540f}
+
+#define CRESULTI {0.6606731609576530495076f,1.0352924413907944600766f,0.8208009210718538728457f,\
+0.9855228198847613141354f,0.2094799364238341676803f,0.2001711092576675676824f,\
+0.6157063400955946619320f,0.6758210089185754387842f,0.7073690227519786599686f,\
+0.6379959312114483749312f,0.7691489792855270568595f,0.8204717538076390370705f,\
+0.8992691795054111869590f,0.0127212399656787735619f,0.7965072880961274748302f,\
+0.4005414846539865347808f,0.5078102333041875082742f,0.7442675929748912011519f,\
+0.6446164613619681515999f,0.0651017559751383007027f,0.4292463160345246220295f,\
+0.7218268661973539224164f,0.675831849442214971369f,1.016847265460205207432f,\
+0.1468976923106849463707f,0.923642083424730087060f,0.7198425877508842773977f,\
+0.2363604106893440193193f,0.6057859843456331327971f,0.9859934125773722746189f,\
+0.4546059235344489524167f,0.1550160776744255175519f,0.5737784438019621902072f,\
+0.8635696530908816281880f,0.1971722712896061546761f,0.8187472766310414096225f,\
+0.3223047939566238695441f,0.3428986541358745587793f,0.1891956718334251719149f,\
+0.5208354545548833369750f,0.7081524694874962166935f,0.7203267007574796210179f,\
+0.6794103936977667901331f,0.3782115660166653348107f,0.8246286245352181243362f,\
+0.4645139855543011786487f,0.0308839406628786498910f,0.7450942218464524646748f,\
+0.4028312748892641792509f,0.1516356705950959171680f,0.7277735925258916882541f,\
+0.3236400086381776008970f,0.2367328033923032648556f,0.6968150511733807173087f,\
+0.3868027398676305850245f,0.8499965389936866566600f,0.1373663005352325217068f,\
+0.4969728656393965771088f,0.3186158192908606912042f,0.2687494032146487410451f,\
+0.4817044586911616854685f,0.8091241454316642212064f,0.7745837276131475324092f,\
+0.7616864033669616951272f,0.3357065002058312042088f,0.5391311137157557276112f,\
+0.4267832806356777752832f,0.4494653959304828472199f,1.07409232431056356205f,\
+0.9773946189840253540027f,0.0903205143448218145119f,0.6947943813727951445358f,\
+0.4320600869989819070582f,0.7345738223824911372617f,0.4980076917918512258154f,\
+0.753646277499480543582f,0.3015650137112788620186f,0.1750320030662110004638f,\
+0.7223173121894863601966f,0.6855367528648522723600f,0.4620100861135144620917f,\
+0.6944021533252422440086f,0.5110335784375538148439f,0.3672451576697671193905f,\
+0.8344551064956932107108f,0.16170594539219715347f,0.7832786921268890534265f,\
+1.0189285776822756268700f,0.7988551639208606447440f,0.9719247807905779801274f,\
+0.9809763387972041392970f,0.5656833224514162816732f,0.8638733429144607178785f,\
+0.7441066604777042403640f,0.0602264440127683667314f,0.4402801210484636462716f,\
+0.7535199884397705272221f,0.9667811691361050119298f,1.0493588871220529412653f,\
+0.1602121578348635611011f,0.6872528304663769738170f,0.2746926003887739664577f,\
+0.5904217499472341756928f,0.8227770718789775283852f,0.9300490141104427177510f,\
+0.8608967966610167055208f,0.6761042332942854837796f,0.3862514929365022942065f,\
+0.5383206023328632738867f,0.0087209580621782408633f,0.8379947814437334052684f,\
+0.0514162894427564812205f,0.4107196425718538934646f,0.8291800128662117908007f,\
+0.5965153474380232578866f,0.1327243053149035900695f,0.6666204349503430659496f,\
+0.1078852700862242136592f,0.3410661266092010479589f,0.8978136284012265821986f,\
+0.4999590426790496699994f,0.5396356462900459005638f,0.8861720904164178680418f,\
+0.1966865820582558155305f,0.7384948934734244518907f,0.6889822634082830576929f,\
+0.7002461629632836803694f,0.9202927678328401972507f,1.0522470356995357043672f,\
+0.7633410819201092989417f,0.6825068129840573538658f,1.032180426666563732852f,\
+0.6970224139462883883311f,0.4448502829538992786596f,0.5954971038562514307202f,\
+0.9072269118636318019355f,0.0986096977623509007849f,0.4792818549998886235031f,\
+0.6169344532127701841162f,0.5996614784596430158814f,0.6997864810760641152143f,\
+0.6821778350957495851148f,0.2159298191152681511973f,0.3221001280586711645881f,\
+0.3026923795099815683862f,0.1907050596442291245936f,0.7504581695080775327611f,\
+0.2050797642560421019109f,0.4500993401191650811200f,1.0616552076870116039231f,\
+0.3866139253948813192530f,0.2889239979563678062391f,0.0419016457354280461023f,\
+0.5291730503201013124937f,0.5270449613735276317428f,0.3620065401137618765759f,\
+0.2487989439191494456249f,0.9684607851607960338214f,0.4659312790851565244665f,\
+0.3871941948924775833696f,0.6912156199525602007228f,0.0672566496597855195683f,\
+1.0473726182255131966770f,0.3738845568372618499708f,0.4336537904037139901092f,\
+0.1616849585723995341713f,0.6587810404999043800700f,0.9478245114156004236250f,\
+0.7443033774708265326581f,0.7329852502477968156924f,0.3960943016785423709258f,\
+0.2387102372514374737378f,0.5224647164810142241365f,0.9310236182750510902650f,\
+0.0713841738247450452448f,1.0541437904171060413461f,0.3977173917051313734028f,\
+0.0286922698814963753056f,0.7352303476692350070465f,0.3345177682401353491670f,\
+0.7257755336052617023412f,0.4362132495206523241649f,0.7201678840265979264501f,\
+0.6279860575277228518232f,0.3131701555376726897606f,0.7154672057942548235587f,\
+0.7055403294219286802758f,0.90419581128384973745f,0.5774063124958943582499f,\
+0.748377680093745611956f,0.3188837788675313866804f,0.8029276503063254022408f,\
+0.6186055293635583929301f,0.3301554535865592887589f,0.907799805701633655275f,\
+1.0004593122932974313954f,0.3297692664500386783288f,0.774518614973831232007f,\
+0.8666563831612021928663f,0.5028547740750087813311f}
+
+
+
+
+void stansTest(void) {
+ float in[]=SOURCE;
+ float res[]=RESULT;
+ float out;
+ int i;
+
+ for (i=0;i<200;i++){
+ out=stans(in[i]);
+ assert(( (fabs(out-res[i]))/(fabs(out)) )<1e-7);
+ }
}
+void ctansTest(void) {
+ float inR[]=CSOURCER;
+ float inI[]=CSOURCEI;
+ float resR[]=CRESULTR;
+ float resI[]=CRESULTI;
+ floatComplex in,out;
+ int i;
+
+ for (i=0;i<200;i++){
+ in=FloatComplex(inR[i],inI[i]);
+ out=ctans(in);
+ assert(( (fabs(creals(out)-resR[i]))/(fabs(creals(out))) )<1e-6);
+ assert(( (fabs(cimags(out)-resI[i]))/(fabs(cimags(out))) )<1e-6);
+ }
+}
+
+void stanaTest(void) {
+ float in[]=SOURCE;
+ float res[]=RESULT;
+ float out[200];
+ int i;
+
+ stana(in,200,out);
+ for (i=0;i<200;i++){
+ assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<1e-6);
+ }
+}
+
+void ctanaTest(void) {
+ float inR[]=CSOURCER;
+ float inI[]=CSOURCEI;
+ float resR[]=CRESULTR;
+ float resI[]=CRESULTI;
+ floatComplex *in,out[200];
+ int i;
+
+ in=FloatComplexMatrix(inR,inI,200);
+ ctana(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 testTan() {
printf("\n>>>> Float Tangeant Tests\n");
stansTest();
- /* FIXME : Implement some test here ... */
- /*
- ctansTest();
- stanaTest();
- ctanaTest();
- */
+ ctansTest();
+ stanaTest();
+ ctanaTest();
+
return 0;
}
diff --git a/src/elementaryFunctions/tan/testTan.h b/src/elementaryFunctions/tan/testTan.h
index b213f105..b9adf6f7 100644
--- a/src/elementaryFunctions/tan/testTan.h
+++ b/src/elementaryFunctions/tan/testTan.h
@@ -15,13 +15,21 @@
#include <stdio.h>
#include <assert.h>
-
+#include <math.h>
#include "tan.h"
#include "constant.h"
void stansTest(void);
+void stanaTest(void);
void dtansTest(void);
+void dtanaTest(void);
+
+void ctansTest(void);
+void ctanaTest(void);
+
+void ztansTest(void);
+void ztanaTest(void);
int testTan(void);
diff --git a/src/elementaryFunctions/tanh/testDoubleTanh.c b/src/elementaryFunctions/tanh/testDoubleTanh.c
index 2be5454d..975d0a68 100644
--- a/src/elementaryFunctions/tanh/testDoubleTanh.c
+++ b/src/elementaryFunctions/tanh/testDoubleTanh.c
@@ -1,6 +1,6 @@
/*
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) 2006-2008 - INRIA - Bruno JOFRET
+ * Copyright (C) 2008 - INRIA - Arnaud TORSET
*
* This file must be used under the terms of the CeCILL.
* This source file is licensed as described in the file COPYING, which
@@ -12,36 +12,475 @@
#include "testTanh.h"
-void dtanhsTest() {
- printf(">> Double scalar\n");
- printf("dtanhs(0) = %e\n", dtanhs(0.0));
- printf("dtanhs(PI) = %e\n", dtanhs(DPI));
- printf("dtanhs(PI/2) = %e\n", dtanhs(DPI/2));
- printf("dtanhs(PI/3) = %e\n", dtanhs(DPI/3));
- printf("dtanhs(PI/4) = %e\n", dtanhs(DPI/4));
- printf("dtanhs(PI/6) = %e\n", dtanhs(DPI/6));
- printf("dtanhs(-PI) = %e\n", dtanhs(-DPI));
- printf("dtanhs(-PI/2) = %e\n", dtanhs(-DPI/2));
- printf("dtanhs(-PI/3) = %e\n", dtanhs(-DPI/3));
- printf("dtanhs(-PI/4) = %e\n", dtanhs(-DPI/4));
- printf("dtanhs(-PI/6) = %e\n", dtanhs(-DPI/6));
+#define SOURCE {0.7062616096809506416321,0.4090520101599395275116,0.3011248558759689331055,\
+0.1880126395262777805328,0.1796709178015589714050,0.2828889950178563594818,\
+0.7232380937784910202026,0.7360379849560558795929,0.1852612206712365150452,\
+0.7703790138475596904755,0.1914967410266399383545,0.7521587223745882511139,\
+0.6205883463844656944275,0.2807604051195085048676,0.2289868686348199844360,\
+0.5049233403988182544708,0.8354099662974476814270,0.8174716415815055370331,\
+0.0030740275979042053223,0.3677616142667829990387,0.8278525872156023979187,\
+0.72754097869619727135,0.5323124285787343978882,0.9267726917751133441925,\
+0.9542504185810685157776,0.3162104780785739421845,0.5789009965956211090088,\
+0.6881225542165338993073,0.3714061146602034568787,0.1705444059334695339203,\
+0.1954363007098436355591,0.978800852317363023758,0.9300233917310833930969,\
+0.5357720064930617809296,0.3947123587131500244141,0.1344871171750128269196,\
+0.7380615202710032463074,0.588114650454372167587,0.9113173168152570724487,\
+0.5682763461954891681671,0.1127616921439766883850,0.9478473584167659282684,\
+0.5237770043313503265381,0.8140139640308916568756,0.1400952627882361412048,\
+0.2763446993194520473480,0.9059953633695840835571,0.1379901585169136524200,\
+0.5603838684037327766419,0.3008610638789832592011,0.4767417535185813904,\
+0.8127435916103422641754,0.1988414181396365165710,0.1107953130267560482025,\
+0.2159351315349340438843,0.6467244853265583515167,0.6597879612818360328674,\
+0.0691898013465106487274,0.9164751060307025909424,0.8635670826770365238190,\
+0.5032854294404387474060,0.1832137755118310451508,0.8403698671609163284302,\
+0.9247214836068451404572,0.6229452537372708320618,0.2773811477236449718475,\
+0.2479109913110733032227,0.3891948559321463108063,0.0436578569933772087097,\
+0.8132526441477239131928,0.7686451207846403121948,0.4041520212776958942413,\
+0.8579940209165215492249,0.6993723283521831035614,0.0828925184905529022217,\
+0.9201254160143435001373,0.5200281282886862754822,0.9351884997449815273285,\
+0.8825624976307153701782,0.2245844271965324878693,0.2153332801535725593567,\
+0.4327089670114219188690,0.5800157263875007629395,0.8876141034997999668121,\
+0.5258982880041003227234,0.859640696551650762558,0.7337234076112508773804,\
+0.7134532411582767963409,0.1087165409699082374573,0.8477638359181582927704,\
+0.6594733335077762603760,0.7916418449021875858307,0.6067967480048537254334,\
+0.4102901122532784938812,0.1958728153258562088013,0.241527963895350694656,\
+0.5113455550745129585266,0.9119556057266891002655,0.0928984880447387695313,\
+0.7438839026726782321930,0.1938720373436808586121,0.4355978979729115962982,\
+0.9922429900616407394409,0.4533818070776760578156,0.8269640663638710975647,\
+0.8889675955288112163544,0.4682085178792476654053,0.3856786251999437808991,\
+0.4124865522608160972595,0.6955242282710969448090,0.0978972557932138442993,\
+0.8728604433126747608185,0.6359515609219670295715,0.4129665228538215160370,\
+0.0294486805796623229980,0.1809961968101561069489,0.7658103061839938163757,\
+0.1232470511458814144135,0.0170737411826848983765,0.8835507561452686786652,\
+0.3164170170202851295471,0.9378212536685168743134,0.3916359134018421173096,\
+0.0844073877669870853424,0.6934146797284483909607,0.4618808380328118801117,\
+0.9355291295796632766724,0.0842495900578796863556,0.5402926551178097724915,\
+0.5613215523771941661835,0.1306025832891464233398,0.5840523042716085910797,\
+0.0048661706969141960144,0.2761953338049352169037,0.7478824090212583541870,\
+0.0194325004704296588898,0.6444276878610253334045,0.2243968318216502666473,\
+0.2478402368724346160889,0.1196091384626924991608,0.1883201440796256065369,\
+0.3393343067727982997894,0.959958622232079505920,0.2847225037403404712677,\
+0.8766820700839161872864,0.2853349032811820507050,0.5103433504700660705566,\
+0.8752629184164106845856,0.5941145820543169975281,0.3945342986844480037689,\
+0.4661326166242361068726,0.0073588271625339984894,0.5170202488079667091370,\
+0.4690007264725863933563,0.6654530800879001617432,0.9476742581464350223541,\
+0.4933638339862227439880,0.2918433747254312038422,0.2016727942973375320435,\
+0.7016656589694321155548,0.8736049132421612739563,0.191055159550160169601,\
+0.5307010114192962646484,0.8889481076039373874664,0.0115523664280772209167,\
+0.4998398735187947750092,0.6700848620384931564331,0.4995208983309566974640,\
+0.1538907447829842567444,0.2571737091057002544403,0.9586529098451137542725,\
+0.6246025026775896549225,0.9371285131201148033142,0.9923511571250855922699,\
+0.3454555813223123550415,0.7558249053545296192169,0.2107181670144200325012,\
+0.9372652801685035228729,0.6767524704337120056152,0.7465373151935636997223,\
+0.4050982249900698661804,0.5101723610423505306244,0.9497965183109045028687,\
+0.0289692510850727558136,0.1634070957079529762268,0.4146909262053668498993,\
+0.0021650679409503936768,0.1810030029155313968658,0.4556188201531767845154,\
+0.1977851442061364650726,0.6053877938538789749146,0.4363054675050079822540,\
+0.8938506888225674629211,0.6104825991205871105194,0.4316215068101882934570,\
+0.2315693595446646213532,0.4675927339121699333191,0.6150764389894902706146,\
+0.8621218334883451461792,0.3846137975342571735382}
+
+#define RESULT {0.6083272331025194601395,0.3876674561956683362496,0.2923416719993215950879,\
+0.1858281840181150723623,0.1777622033720960281755,0.2755767974985386392639,\
+0.6189110466547474986854,0.6267454363670084127591,0.1831704252906815044710,\
+0.6471497862444923754310,0.1891897820789192330437,0.6364350501403950310930,\
+0.5515375365220808179245,0.2736087067004031037065,0.2250667607234114742099,\
+0.4659802867043164043004,0.6833702176797041838441,0.6736913883505325495449,\
+0.0030740179151169427958,0.3520322698255886617602,0.6793212620436761550735,\
+0.6215586405472446340781,0.4871467381023854570366,0.7290856689840882198794,\
+0.7417012620322497307157,0.3060764076080783047118,0.5218661923298004712279,\
+0.5967745422524275422660,0.3552210140242362257368,0.1689099681737986358154,\
+0.1929854853271556480721,0.752546334797111304837,0.7306048018962054690917,\
+0.4897808669902837253041,0.3754155858264546230529,0.1336821273676178090106,\
+0.6279725491443334250974,0.5285382896600216984240,0.7217639239261176564710,\
+0.5140922941464451945137,0.1122861813568946515174,0.7388069522259688159949,\
+0.4806098503179282999120,0.6717986111263679616101,0.1391858664071369267035,\
+0.2695186533316221155765,0.7192045990350994788543,0.1371209417264223628941,\
+0.5082621919460940107527,0.2921004060298734161805,0.4436303990482610704049,\
+0.6711009797617260019820,0.1962616190799932602840,0.1103441684263640337749,\
+0.2126403628770875964271,0.5694607822364758931144,0.5782222848708917783966,\
+0.0690796032269536119941,0.7242256121481682740182,0.69809096281132376749,\
+0.4646970495827091318652,0.1811909351875044538183,0.6860049185734097276779,\
+0.7281233753912585981993,0.5531753555435303670862,0.2704795450464865247398,\
+0.2429539608603658584762,0.3706659125047845337875,0.0436301407089985798793,\
+0.6713806714122574348380,0.6461409215061649780054,0.3834959767038711997422,\
+0.6952226974662015779316,0.6039692179338833621927,0.0827031826719682033877,\
+0.7259567403708432342668,0.4777217213658969674484,0.7330037868445029580755,\
+0.7077007368815937393691,0.2208832069439833623026,0.2120656512810102645172,\
+0.4075827434794156989284,0.5226768598581769120770,0.7102132909685879846862,\
+0.4822394836530664030683,0.6960725041612901842214,0.6253380086104668444946,\
+0.6128377044260436834477,0.1082902389835735668111,0.6898994401629748862703,\
+0.5780128119634093675217,0.6593381318630107124079,0.5418683181743142451836,\
+0.3887189835668665716106,0.1934057072291916479223,0.2369384549831176911550,\
+0.4709929270514126020686,0.7220695597477664318120,0.0926321653854568632935,\
+0.6314859919362979523427,0.1914790269022769997331,0.4099889146528875039088,\
+0.7583171167988222993728,0.4246748836724252296193,0.6788424846042582228023,\
+0.7108834330723724503898,0.4367506950167392987261,0.3676288421910962611605,\
+0.3905819425256221721909,0.6015191410314820741334,0.0975857051379892537213,\
+0.7028245349377849615635,0.5621367138424371301397,0.3909886152936559167159,\
+0.0294401706564003176614,0.1790453013287252037600,0.6444866108356477329977,\
+0.1226267854182154504183,0.0170720823056739953727,0.7081936907445306461639,\
+0.3062635855747415369876,0.7342196272687927516287,0.3727696775311670207564,\
+0.0842075009021545223264,0.6001711719907401043628,0.4316159054333421063454,\
+0.7331613587758020189611,0.0840508200406931138549,0.4932094637687579607999,\
+0.5089573121007661127280,0.1298650506608897969851,0.5256044879043626494308,\
+0.0048661322875914753833,0.2693801321981743046585,0.6338839281129466929343,\
+0.0194300547927987350694,0.5679067732631524201281,0.2207047568409323534677,\
+0.2428873816732023682707,0.1190419938419155360121,0.1861250528158440442628,\
+0.3268829619862821389553,0.7442584101595816070685,0.2772702073231406161291,\
+0.7047532323150516031518,0.2778354302962353084006,0.4702126778004429574764,\
+0.7040382261737980762462,0.5328484040985558278791,0.3752626107952297673798,\
+0.43506925228714365961,0.0073586943328478923027,0.4753969607482095849349,\
+0.4373915670200547722857,0.5819809696038570345777,0.7387283262105414083365,\
+0.4568821823646959101595,0.2838305708191527498840,0.1989824153354164404384,\
+0.6054239725907547553518,0.7032010676851431218992,0.1887639704824971842445,\
+0.4859167650222710466146,0.7108737933392066388194,0.0115518525401329084923,\
+0.461991216833716300538,0.5850357022343135593445,0.4617402854275272083839,\
+0.1526873114812071496882,0.2516501130208930181453,0.7436753924988391828421,\
+0.5543244269171754279313,0.7339001657945646295289,0.7583630791792929093376,\
+0.3323391775157006899910,0.6386111600303081559105,0.2076538016886759763224,\
+0.7339632624841636587831,0.5894041048692751916249,0.6330786187202321890766,\
+0.3843027300435838400361,0.4700794834210440531486,0.7396909169647786219670,\
+0.0289611499702619457075,0.1619680384735620870540,0.3924484198089013831101,\
+0.0021650645580242309542,0.1790518892412555074234,0.4265067109232646425099,\
+0.1952458211607971949597,0.5408723031703753791888,0.4105773773696593798022,\
+0.7132904548568874680825,0.5444667235672814298297,0.4066755344379027192758,\
+0.2275170058253208615895,0.4362522385676954606026,0.5476906607425194861705,\
+0.6973492805657204307579,0.3667075667170831554387}
+
+#define ZSOURCER {0.6045256052166223526001,0.9455216196365654468536,0.4476299257948994636536,\
+0.8624908211641013622284,0.1751048639416694641113,0.2067177616991102695465,\
+0.6848411662504076957703,0.1348653226159512996674,0.0069159921258687973022,\
+0.1496290047653019428253,0.5665438110008835792542,0.4359452719800174236298,\
+0.6547604538500308990479,0.3381605879403650760651,0.4259321158751845359802,\
+0.3060420057736337184906,0.7704779822379350662231,0.7058695447631180286408,\
+0.2373670237138867378235,0.8205849635414779186249,0.6789963841438293457031,\
+0.5250809141434729099274,0.3359806565567851066589,0.8941988362930715084076,\
+0.5461782198399305343628,0.7568633262999355792999,0.0259526828303933143616,\
+0.3250150899402797222138,0.6072143577039241791,0.8756139636971056461334,\
+0.2962085595354437828064,0.4229678637348115444183,0.4243144039064645767212,\
+0.7620028969831764698029,0.3622896494343876838684,0.5658242437057197093964,\
+0.6424440070986747741699,0.7580267959274351596832,0.2531452132388949394226,\
+0.5266989110969007015228,0.2118590380996465682983,0.4779220153577625751495,\
+0.1615962767973542213440,0.9168031658045947551727,0.5461866445839405059815,\
+0.4686870560981333255768,0.7772213732823729515076,0.5871783248148858547211,\
+0.5848031807690858840942,0.3139644009061157703400,0.3204141603782773017883,\
+0.3331634956412017345429,0.2282590121030807495117,0.2750317254103720188141,\
+0.4963629124686121940613,0.7453477247618138790131,0.1155001949518918991089,\
+0.0626524840481579303741,0.0877018878236413002014,0.5507565210573375225067,\
+0.2116370312869548797607,0.8335358710028231143951,0.4045845707878470420837,\
+0.2880227542482316493988,0.1750094983726739883423,0.0051561561413109302521,\
+0.3109287889674305915833,0.6602919283322989940643,0.9722995534539222717285,\
+0.9826813959516584873200,0.0455837054178118705750,0.4096118300221860408783,\
+0.7104403134435415267944,0.3917615194804966449738,0.5571686858311295509338,\
+0.0565565521828830242157,0.1540721096098423004150,0.9109257892705500125885,\
+0.5713340407237410545349,0.3488348922692239284515,0.8972954172641038894653,\
+0.2973396372981369495392,0.1091936426237225532532,0.7626331257633864879608,\
+0.6584706604480743408203,0.6996708759106695652008,0.6756794182583689689636,\
+0.9004421546123921871185,0.6668148916214704513550,0.8518152837641537189484,\
+0.8365677157416939735413,0.1291190306656062602997,0.6095453463494777679443,\
+0.2412315667606890201569,0.4029275467619299888611,0.3019328541122376918793,\
+0.1083198729902505874634,0.8456356939859688282013,0.9417407037690281867981,\
+0.9083450469188392162323,0.1937242373824119567871,0.5318046086467802524567,\
+0.8314437521621584892273,0.4952740012668073177338,0.7465563025325536727905,\
+0.7102393140085041522980,0.5811418974772095680237,0.7035941029898822307587,\
+0.3746570833027362823486,0.3394373343326151371002,0.6322447275742888450623,\
+0.7636191300116479396820,0.6940386760979890823364,0.8735245508141815662384,\
+0.3612738298252224922180,0.7933200257830321788788,0.4830590635538101196289,\
+0.2469964125193655490875,0.5025922833010554313660,0.7430270477198064327240,\
+0.6783937942236661911011,0.4903185223229229450226,0.709806025959551334381,\
+0.3303662906400859355927,0.6815545372664928436279,0.0701365978457033634186,\
+0.4745870968326926231384,0.8091805852018296718597,0.9447045121341943740845,\
+0.5478458073921501636505,0.1216687532141804695129,0.9161847713403403759003,\
+0.3045207932591438293457,0.6502694808878004550934,0.0987624628469347953796,\
+0.8391053467057645320892,0.0328534897416830062866,0.3461971958167850971222,\
+0.2801467711105942726135,0.5500544901005923748016,0.0729318000376224517822,\
+0.0225322381593286991119,0.50267804320901632309,0.3478884599171578884125,\
+0.4298669416457414627075,0.3537984383292496204376,0.0529730813577771186829,\
+0.9533003675751388072968,0.1842019557952880859375,0.958756382111459970474,\
+0.3245136169716715812683,0.0003973259590566158295,0.0972583871334791183472,\
+0.4378789965994656086,0.3634226778522133827210,0.2685119728557765483856,\
+0.2770298384130001068115,0.8854365111328661441803,0.5216628303751349449158,\
+0.4979983693920075893,0.8733724001795053482056,0.4699407932348549365997,\
+0.9364062966778874397278,0.1337622734718024730682,0.2712419554591178894043,\
+0.1766990595497190952301,0.0543269468471407890320,0.8402757882140576839447,\
+0.7507283594459295272827,0.3062269617803394794464,0.9195641661062836647034,\
+0.1318263853900134563446,0.0826364941895008087158,0.8222710476256906986237,\
+0.4441085970029234886169,0.9617503038607537746429,0.0283641982823610305786,\
+0.1431905967183411121368,0.3793597565963864326477,0.6144003230147063732147,\
+0.2128270715475082397461,0.4704488315619528293610,0.2076055286452174186707,\
+0.7435979112051427364349,0.3391801547259092330933,0.2479635034687817096710,\
+0.6721735307946801185608,0.9013197491876780986786,0.2140864841639995574951,\
+0.8460668534971773624420,0.1650043567642569541931,0.4003686285577714443207,\
+0.5522825215011835098267,0.0638249483890831470490,0.6903966935351490974426,\
+0.8547787251882255077362,0.0291904583573341369629,0.5434663915075361728668,\
+0.6236743135377764701843,0.2417052476666867733002}
+
+#define ZSOURCEI {0.5503273960202932357788,0.6906704087741672992706,0.9835249418392777442932,\
+0.8285484607331454753876,0.2062614001333713531494,0.1944643096067011356354,\
+0.4367609983310103416443,0.8090620837174355983734,0.8818644303828477859497,\
+0.7404803228564560413361,0.7542522149160504341126,0.9921960639767348766327,\
+0.9886121451854705810547,0.0113218077458441257477,0.9367801276966929435730,\
+0.3874237253330647945404,0.2886805813759565353394,0.567788839805871248245,\
+0.7295644441619515419006,0.0303032915107905864716,0.2795897088944911956787,\
+0.7047131718136370182037,0.7442112853750586509705,0.8920237845741212368012,\
+0.1081438604742288589478,0.8751525697298347949982,0.9068333031609654426575,\
+0.2166852983646094799042,0.4824190363287925720215,0.7766945236362516880035,\
+0.4510916722938418388367,0.1300636469386518001556,0.5505470838397741317749,\
+0.6936193336732685565949,0.1749099576845765113831,0.8636093880049884319305,\
+0.2150467522442340850830,0.1886725709773600101471,0.1796098565682768821716,\
+0.4374312213622033596039,0.8514516223222017288208,0.7381969136185944080353,\
+0.8102188156917691230774,0.1460137623362243175507,0.8999849110841751098633,\
+0.4043733575381338596344,0.0156995235010981559753,0.6904196902178227901459,\
+0.2990311514586210250855,0.1383218024857342243195,0.8478512773290276527405,\
+0.3007262717001140117645,0.229154746979475021362,0.8078110129572451114655,\
+0.3176332255825400352478,0.6924462593160569667816,0.1364154014736413955689,\
+0.5433279541321098804474,0.3276594849303364753723,0.2006831648759543895721,\
+0.5037304237484931945801,0.4962565028108656406403,0.8996161324903368949890,\
+0.9357709079049527645111,0.3390339072793722152710,0.6029155333526432514191,\
+0.4153500730171799659729,0.3041478390805423259735,0.8489827848970890045166,\
+0.4482063786126673221588,0.0903797810897231101990,0.7382151386700570583344,\
+0.2669597584754228591919,0.8226196658797562122345,0.3985779182985424995422,\
+0.9789295899681746959686,0.3041231036186218261719,0.0663515278138220310211,\
+0.6667758254334330558777,0.7548807277344167232513,0.1922533493489027023315,\
+0.7942791883833706378937,0.5580398896709084510803,0.2016023616306483745575,\
+0.787146832793951034546,0.0955459238030016422272,0.6623697867617011070252,\
+0.864868474658578634262,0.7013061288744211196899,0.8015053984709084033966,\
+0.9135685982182621955872,0.6317234965972602367401,0.9346773549914360046387,\
+0.9157753759063780307770,0.0510348035022616386414,0.4329969524405896663666,\
+0.9721843507140874862671,0.8001508046872913837433,0.8452261472120881080627,\
+0.0610524858348071575165,0.8168097324669361114502,0.2101262793876230716705,\
+0.3055453812703490257263,0.9465212575159966945648,0.9269728232175111770630,\
+0.7737778765149414539337,0.5893978821113705635071,0.2377697187475860118866,\
+0.5269544571638107299805,0.0077543654479086399078,0.8311711428686976432800,\
+0.0268517597578465938568,0.2591186594218015670776,0.4641277943737804889679,\
+0.6098861405625939369202,0.0656952331773936748505,0.6466812007129192352295,\
+0.1018534512259066104889,0.2742705782875418663025,0.8162728524766862392426,\
+0.3357750270515680313110,0.4765891996212303638458,0.8440040023997426033020,\
+0.1785074654035270214081,0.5855625644326210021973,0.8426241897977888584137,\
+0.7058847947046160697937,0.7396617024205625057221,0.9751448985189199447632,\
+0.7606669445522129535675,0.8236690396443009376526,0.8889620001427829265595,\
+0.7960178293287754058838,0.3052428201772272586823,0.6803312664851546287537,\
+0.6412069997750222682953,0.0988248009234666824341,0.4654508423991501331329,\
+0.6714970665052533149719,0.5131103205494582653046,0.8631567060947418212891,\
+0.8328299173153936862946,0.1687975851818919181824,0.2961277081631124019623,\
+0.2591485660523176193237,0.1700844173319637775421,0.9718958893790841102600,\
+0.0695185582153499126434,0.4696230851113796234131,0.9544191421009600162506,\
+0.3679352095350623130798,0.2973918146453797817230,0.0415310803800821304321,\
+0.4892336544580757617950,0.5171590568497776985169,0.3534862431697547435761,\
+0.2354387864470481872559,0.6779259913600981235504,0.3834532154724001884460,\
+0.3174350797198712825775,0.3418120350688695907593,0.0535557498224079608917,\
+0.9285596096888184547424,0.3862650538794696331024,0.4328473098576068878174,\
+0.1581165478564798831940,0.7887120461091399192810,0.7448797873221337795258,\
+0.5185996759682893753052,0.8651678604073822498322,0.1524438308551907539368,\
+0.2392775672487914562225,0.5761575847864151000977,0.7395762302912771701813,\
+0.0583172617480158805847,0.6962534948252141475678,0.4206145536154508590698,\
+0.0281158541329205036163,0.8313249954953789710999,0.2333360086195170879364,\
+0.8865877203643321990967,0.3746785433031618595123,0.87671328987926244736,\
+0.4027077830396592617035,0.2890332732349634170532,0.8538430598564445972443,\
+0.5499771209433674812317,0.5128610017709434032440,0.6321087554097175598145,\
+0.4165538274683058261871,0.3217771751806139945984,0.9717370062135159969330,\
+0.5348322447389364242554,0.3416590173728764057159,0.9565287167206406593323,\
+0.9951003189198672771454,0.3422884084284305572510,0.7870580093003809452057,\
+0.9234123295173048973084,0.5238970420323312282562}
+
+#define ZRESULTR {0.6700223015238303547747,0.9051590648529930227539,0.9783774998303537140387,\
+0.9672554578415690773596,0.1806879116022510611828,0.2113884833531175511112,\
+0.6724311908168314477763,0.2759693779071136221504,0.0171117603025009445972,\
+0.2676571377242007998554,0.7836070482910290069256,0.9837911114618788088748,\
+1.0787649507707848250959,0.3258715909732741722316,0.8818391305817397940459,\
+0.3412489698350346656319,0.6791962837910036077105,0.7436127103435716811930,\
+0.40184826884232582866,0.6757254959645757619313,0.6216816234807176488886,\
+0.7106811634553994450059,0.5496317899100798820555,1.015517869987778709628,\
+0.5020506061187628432663,0.9811456923663512963429,0.0682501782366792819623,\
+0.3276872649171290174941,0.6393144648282618192070,0.9360249253515308121010,\
+0.3486021801541281939230,0.405155698729944113712,0.5200555835311830854550,\
+0.8452234271752276928424,0.3567295147730688009702,0.8928456199942530480129,\
+0.5846382117554749235922,0.6534877266970448017602,0.2555268336748864332897,\
+0.5599022272385358878211,0.4549851524880720865518,0.6983186009546583639107,\
+0.3278445848029415965463,0.7317436304730139395858,0.9243668151604532701171,\
+0.4997101034619103598899,0.6512014053656888235011,0.7461784468374338397112,\
+0.5613804235723615088105,0.309377290465780441231,0.6302193796318024121561,\
+0.3488048678688123183100,0.2359369023748482674385,0.5207697215592063111345,\
+0.4975483327992256676886,0.8371220343907752603485,0.1171268218028372609663,\
+0.085272785233540815408,0.0974986984973703479929,0.5164560743022618138909,\
+0.2683348894394235739647,0.7764310536494951620057,0.8045234481921298419493,\
+0.6958959159533119054331,0.1940650650900959395262,0.0075996484393591736892,\
+0.3536342521606328781481,0.6152689741862609196232,0.9952856734893198442649,\
+0.8206704954595607226509,0.0459255053037718463660,0.6307753783837566352588,\
+0.6388147154641353742122,0.6937233166977520015806,0.5697295509652193779004,\
+0.1802327077236753061218,0.1675371469878289276689,0.7230999921866064772402,\
+0.7176490691010239952874,0.5749086647774364067232,0.7279693322506849417763,\
+0.5413870504782296588786,0.1504476557625347432623,0.6581157602540366191590,\
+0.8675383161064098569426,0.6076707020048850438343,0.7819483789931592765399,\
+0.9976690503006511168138,0.8038234125831255072470,0.9466047824946693944881,\
+1.0263044057305568124150,0.1954383476167207978058,0.9991226583234396052546,\
+0.5824462236684256888353,0.3833026614151368027805,0.3492943337672331227672,\
+0.3315115099350262606315,0.9442386171423264862312,0.9899258002262354416700,\
+0.7216294786971718666635,0.3920325460401206107974,0.5034740230892749135450,\
+0.715969761025848305813,0.9550125571098367904810,1.0265780142294762544708,\
+0.8803585794351714843842,0.6748726933268143213240,0.6286862272305427934427,\
+0.4593360950510761986365,0.3269925373376404986736,0.8950979801820350134634,\
+0.6434757060207739742808,0.6268824366882729259842,0.7824259493911607243888,\
+0.4869178781705328362683,0.6618946105318512795890,0.6319261919275969141552,\
+0.2444724751522657224534,0.4924981727592058766696,0.9272283746811394999909,\
+0.6354081057135144705583,0.5455716136398853777223,0.9397290975289604997300,\
+0.3281437517029104355970,0.7390025847943897385761,0.1571298352097142136952,\
+0.6681717696917298665582,0.893260926700763513431,1.0727843133940448971941,\
+0.7758756582495047737780,0.2577884404871108037227,1.0152118695965053341013,\
+0.553316515865495128779,0.6088582613070312454795,0.1618775254222162562900,\
+0.8458278989313633422498,0.0331641659985394132715,0.4056540942022494600217,\
+0.4254458405105830398618,0.6108828412056167556088,0.1710530527126769284596,\
+0.0497407205620656947542,0.4747317015892947855704,0.3618696796533303894350,\
+0.4287418625744875422257,0.3485740919790226710617,0.1655375133873851212218,\
+0.7428884062630719542497,0.2271172969578298117543,1.0587395337282918816868,\
+0.3549940948693925402147,0.0004346469449674766222,0.0971187244038783509259,\
+0.5043807505243238509252,0.4434874448032950500220,0.2951797103676901401492,\
+0.2845053188094572860223,0.8815102337365799956004,0.5368898054807562658652,\
+0.4988328370209159090543,0.745435623332440511213,0.4391683137636283595917,\
+1.0422403039497714072326,0.1545117394214212958037,0.3165746040477503964183,\
+0.1791895467797269270172,0.1089461488105609721089,0.9065124792766549033374,\
+0.7446224625751999282031,0.6296662678760955866864,0.7337000953456223051319,\
+0.1387263358911398902773,0.1169149268680415021393,0.8975235374861081361075,\
+0.4182178630757872883628,0.9119369228139623251295,0.0340248805832462572485,\
+0.1423301258754861298161,0.6888548451397347172076,0.5685106882588889520847,\
+0.4923020191500164788323,0.4917581413760083730580,0.4716616017939372351719,\
+0.6955693872489776552470,0.3523112018531558975454,0.5222250480132760719343,\
+0.7144705774015845944902,0.8119440584245034564503,0.3164274689259520823015,\
+0.7538323331802344595687,0.1811571114058267151226,0.9128449761317551924833,\
+0.6233160136433549824986,0.0717615749734574065455,1.0473491540209625139113,\
+1.0924869453095222837646,0.0328835678516360627177,0.7973589739562461087274,\
+0.9908609316019793000763,0.3104246876762664641980}
+
+#define ZRESULTI {0.3914561710408779870996,0.2745677431871340612446,0.8850988190375015385314,\
+0.3546606100359354085683,0.2026838146454169320432,0.1884673919393772267839,\
+0.2801601885873738484456,1.0096958835716720592757,1.21412343558816204769,\
+0.8776375911322839007411,0.5620073675207013508270,0.9130433942963852578245,\
+0.5770284711891953133289,0.0101200891695042028556,0.8779935002098492313749,\
+0.3667139971005198284537,0.1664312994282131086266,0.3494312783943472333625,\
+0.8104125516371111226377,0.0164786111567649697085,0.1816457336156695190343,\
+0.5593166230651334114299,0.7569161316066348454967,0.3415023725885689698245,\
+0.0814423238542508892701,0.4465689540632135634546,1.275733507144991119020,\
+0.197487841611818731868,0.3421719548772197971864,0.3349549978483222778536,\
+0.4357966181675047567801,0.1096343010109522564388,0.4859836370575167374675,\
+0.3800931088000560897910,0.1548265257107722947527,0.6348894325615116462913,\
+0.1460748031318926942745,0.1110957110750060844451,0.1700664034230296439709,\
+0.3412176537402174525404,1.0332395638414424432483,0.6273383485614248966655,\
+0.9957192459042429888427,0.0691093109901288471519,0.6804424693811944591104,\
+0.3344738416260302771299,0.0090436204351948476510,0.5006804162977720462635,\
+0.2172201211207329951680,0.1261162082552027552396,0.9120640605812813106468,\
+0.2753688308103523496584,0.2209039383694014757609,0.8997305533684579748055,\
+0.2536420004619579504634,0.3903699376999557602019,0.1354191697515705339328,\
+0.6007399379388951299319,0.3370127497194151389159,0.1507780721992685313282,\
+0.5203153088877445764382,0.254583375618394558426,0.8702994198605253917123,\
+1.0924089238964773684870,0.3407939274374255367306,0.6883985279629690756664,\
+0.3940203751449571356602,0.2021529986071308460094,0.2883410464579913012884,\
+0.1832164764792163502705,0.0904370855097187398286,0.6870692259557662495695,\
+0.1667494081756663859562,0.7986735402486416779411,0.2997470364729120650971,\
+1.4723672873315984954701,0.3058215886262277694030,0.0317778181669746695448,\
+0.4953897349233554736614,0.7593857543036769408573,0.0933417291983620195373,\
+0.8587250458616788595379,0.6140082043678934953235,0.1179425317948916696054,\
+0.5008800041022678506408,0.0606528647874819346053,0.4208891412439614287955,\
+0.3345057926491249999934,0.4488362148523600825278,0.356228513965734405744,\
+0.3862019012866550471408,0.7133939454258028112221,0.6183512140459618278143,\
+1.122372846973830329276,0.0435912326295722213354,0.4149318455829275609226,\
+1.4136182419356593253923,0.360095911709175209303,0.3059781012378688380693,\
+0.0293528815458468754496,0.9850054988638156094893,0.1610071461548980287226,\
+0.1615738175268226772818,0.7804595725744208900565,0.4664649257591839126569,\
+0.4516332153201338406312,0.4324429865103157633044,0.1499229835931424337225,\
+0.4861395789308433634801,0.0069254200843589181283,0.5470248281814621416075,\
+0.0157419761082240212968,0.1652796264802975090280,0.2251845784941430561599,\
+0.5809144105432306748327,0.0370371154221026954723,0.5409142410066014594605,\
+0.0961579912696427369090,0.2170435871168209518434,0.4413938390627674124289,\
+0.2180518991856933708196,0.3882731529916919055445,0.4793791546290147587150,\
+0.1615500633583723533171,0.3727683427019338191499,1.1092002442556854191480,\
+0.6007159335006776457178,0.3670729131136168943428,0.3082959548830728202518,\
+0.5833221942824414751883,1.0459318594890267828390,0.3263494274187709875967,\
+0.8544844347571096676575,0.2053831793406840910965,0.7963141410348304471967,\
+0.3137393761405720127300,0.0990397931617461729781,0.4344101753145302446946,\
+0.7023788886417181576150,0.3911554522022889779365,1.1544412437572197926983,\
+1.0984333102013155158971,0.1328621940810992829718,0.268167531788618462851,\
+0.2190523476868022068054,0.1514050595867235948777,1.452314392851102864412,\
+0.0312862499326923282350,0.4864975811326933685663,0.3000795354832859751504,\
+0.3425769720223186820540,0.3064807342294366687696,0.0411636957365836206324,\
+0.4217989293277185081088,0.4809545441238126106676,0.3404220390913085259044,\
+0.2214498702533347351817,0.3018772698523388142711,0.2996779751331964392058,\
+0.2530674633040843612974,0.1693130128868851891344,0.0432918302807213800643,\
+0.3147578695966239403781,0.3983398179395671312442,0.4233396532725078320603,\
+0.1544509091417925472634,1.000697611141370568788,0.3487050795605025621526,\
+0.3006071168291280515383,0.9542614300639570279472,0.0718340034799053589465,\
+0.2395154786718341477503,0.6434277607558438472069,0.3585399891990152521082,\
+0.0482004898594938432921,0.2679535503180693334357,0.4468782830994436072736,\
+0.0275539888537934679613,0.8228411197528838760817,0.1637277172538824099313,\
+1.0994704384405307173722,0.3084433992108448485681,1.0856016429316568405739,\
+0.2389273879432435854220,0.2631293443272026966184,1.0016126450700377770175,\
+0.3562135410626017795188,0.2353197404250201296705,0.6834823618792332799998,\
+0.2126404560740041416178,0.3234875849405334791165,0.9562375286253093076283,\
+0.4069690501749418376498,0.3539780611029934576095,0.5294802297322954709458,\
+0.3733196120144765539628,0.3559718013547358839155,0.6068341504607892566980,\
+0.5969952503542278465787,0.5352237566999263895795}
+
+
+
+void dtanhsTest(void) {
+ double in[]=SOURCE;
+ double res[]=RESULT;
+ double out;
+ int i;
+
+ for (i=0;i<200;i++){
+ out=dtanhs(in[i]);
+ assert(( (fabs(out-res[i]))/(fabs(out)) )<1e-15);
+ }
}
-void ztanhsTest() {
- printf(">> Double Complex scalar\n");
- /* FIXME : Implement some test here ... */
+void ztanhsTest(void) {
+ double inR[]=ZSOURCER;
+ double inI[]=ZSOURCEI;
+ double resR[]=ZRESULTR;
+ double resI[]=ZRESULTI;
+ doubleComplex in,out;
+ int i;
+
+ for (i=0;i<200;i++){
+ in=DoubleComplex(inR[i],inI[i]);
+ out=ztanhs(in);
+ assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<1e-15);
+ assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<1e-15);
+ }
}
-void dtanhaTest() {
- printf(">> Double array\n");
- /* FIXME : Implement some test here ... */
+void dtanhaTest(void) {
+ double in[]=SOURCE;
+ double res[]=RESULT;
+ double out[200];
+ int i;
+
+ dtanha(in,200,out);
+ for (i=0;i<200;i++){
+ assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<1e-15);
+ }
}
-void ztanhaTest() {
- printf(">> Double Complex array\n");
- /* FIXME : Implement some test here ... */
+void ztanhaTest(void) {
+ double inR[]=ZSOURCER;
+ double inI[]=ZSOURCEI;
+ double resR[]=ZRESULTR;
+ double resI[]=ZRESULTI;
+ doubleComplex *in,out[200];
+ int i;
+
+
+ in=DoubleComplexMatrix(inR,inI,200);
+ ztanha(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 testTanh() {
printf("\n>>>> Double Hyperbolic Tangeant Tests\n");
dtanhsTest();
diff --git a/src/elementaryFunctions/tanh/testFloatTanh.c b/src/elementaryFunctions/tanh/testFloatTanh.c
index ba72e897..33b86684 100644
--- a/src/elementaryFunctions/tanh/testFloatTanh.c
+++ b/src/elementaryFunctions/tanh/testFloatTanh.c
@@ -1,6 +1,6 @@
/*
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) 2006-2008 - INRIA - Bruno JOFRET
+ * Copyright (C) 2008 - INRIA - Arnaud TORSET
*
* This file must be used under the terms of the CeCILL.
* This source file is licensed as described in the file COPYING, which
@@ -12,34 +12,471 @@
#include "testTanh.h"
-void stanhsTest() {
- printf(">> Float scalar\n");
- printf("stanhs(0) = %f\n", stanhs(0.0f));
- printf("stanhs(PI) = %f\n", stanhs(FPI));
- printf("stanhs(PI/2) = %f\n", stanhs(FPI/2));
- printf("stanhs(PI/3) = %f\n", stanhs(FPI/3));
- printf("stanhs(PI/4) = %f\n", stanhs(FPI/4));
- printf("stanhs(PI/6) = %f\n", stanhs(FPI/6));
- printf("stanhs(-PI) = %f\n", stanhs(-FPI));
- printf("stanhs(-PI/2) = %f\n", stanhs(-FPI/2));
- printf("stanhs(-PI/3) = %f\n", stanhs(-FPI/3));
- printf("stanhs(-PI/4) = %f\n", stanhs(-FPI/4));
- printf("stanhs(-PI/6) = %f\n", stanhs(-FPI/6));
+#define SOURCE {0.7062616096809506416321f,0.4090520101599395275116f,0.3011248558759689331055f,\
+0.1880126395262777805328f,0.1796709178015589714050f,0.2828889950178563594818f,\
+0.7232380937784910202026f,0.7360379849560558795929f,0.1852612206712365150452f,\
+0.7703790138475596904755f,0.1914967410266399383545f,0.7521587223745882511139f,\
+0.6205883463844656944275f,0.2807604051195085048676f,0.2289868686348199844360f,\
+0.5049233403988182544708f,0.8354099662974476814270f,0.8174716415815055370331f,\
+0.0030740275979042053223f,0.3677616142667829990387f,0.8278525872156023979187f,\
+0.72754097869619727135f,0.5323124285787343978882f,0.9267726917751133441925f,\
+0.9542504185810685157776f,0.3162104780785739421845f,0.5789009965956211090088f,\
+0.6881225542165338993073f,0.3714061146602034568787f,0.1705444059334695339203f,\
+0.1954363007098436355591f,0.978800852317363023758f,0.9300233917310833930969f,\
+0.5357720064930617809296f,0.3947123587131500244141f,0.1344871171750128269196f,\
+0.7380615202710032463074f,0.588114650454372167587f,0.9113173168152570724487f,\
+0.5682763461954891681671f,0.1127616921439766883850f,0.9478473584167659282684f,\
+0.5237770043313503265381f,0.8140139640308916568756f,0.1400952627882361412048f,\
+0.2763446993194520473480f,0.9059953633695840835571f,0.1379901585169136524200f,\
+0.5603838684037327766419f,0.3008610638789832592011f,0.4767417535185813904f,\
+0.8127435916103422641754f,0.1988414181396365165710f,0.1107953130267560482025f,\
+0.2159351315349340438843f,0.6467244853265583515167f,0.6597879612818360328674f,\
+0.0691898013465106487274f,0.9164751060307025909424f,0.8635670826770365238190f,\
+0.5032854294404387474060f,0.1832137755118310451508f,0.8403698671609163284302f,\
+0.9247214836068451404572f,0.6229452537372708320618f,0.2773811477236449718475f,\
+0.2479109913110733032227f,0.3891948559321463108063f,0.0436578569933772087097f,\
+0.8132526441477239131928f,0.7686451207846403121948f,0.4041520212776958942413f,\
+0.8579940209165215492249f,0.6993723283521831035614f,0.0828925184905529022217f,\
+0.9201254160143435001373f,0.5200281282886862754822f,0.9351884997449815273285f,\
+0.8825624976307153701782f,0.2245844271965324878693f,0.2153332801535725593567f,\
+0.4327089670114219188690f,0.5800157263875007629395f,0.8876141034997999668121f,\
+0.5258982880041003227234f,0.859640696551650762558f,0.7337234076112508773804f,\
+0.7134532411582767963409f,0.1087165409699082374573f,0.8477638359181582927704f,\
+0.6594733335077762603760f,0.7916418449021875858307f,0.6067967480048537254334f,\
+0.4102901122532784938812f,0.1958728153258562088013f,0.241527963895350694656f,\
+0.5113455550745129585266f,0.9119556057266891002655f,0.0928984880447387695313f,\
+0.7438839026726782321930f,0.1938720373436808586121f,0.4355978979729115962982f,\
+0.9922429900616407394409f,0.4533818070776760578156f,0.8269640663638710975647f,\
+0.8889675955288112163544f,0.4682085178792476654053f,0.3856786251999437808991f,\
+0.4124865522608160972595f,0.6955242282710969448090f,0.0978972557932138442993f,\
+0.8728604433126747608185f,0.6359515609219670295715f,0.4129665228538215160370f,\
+0.0294486805796623229980f,0.1809961968101561069489f,0.7658103061839938163757f,\
+0.1232470511458814144135f,0.0170737411826848983765f,0.8835507561452686786652f,\
+0.3164170170202851295471f,0.9378212536685168743134f,0.3916359134018421173096f,\
+0.0844073877669870853424f,0.6934146797284483909607f,0.4618808380328118801117f,\
+0.9355291295796632766724f,0.0842495900578796863556f,0.5402926551178097724915f,\
+0.5613215523771941661835f,0.1306025832891464233398f,0.5840523042716085910797f,\
+0.0048661706969141960144f,0.2761953338049352169037f,0.7478824090212583541870f,\
+0.0194325004704296588898f,0.6444276878610253334045f,0.2243968318216502666473f,\
+0.2478402368724346160889f,0.1196091384626924991608f,0.1883201440796256065369f,\
+0.3393343067727982997894f,0.959958622232079505920f,0.2847225037403404712677f,\
+0.8766820700839161872864f,0.2853349032811820507050f,0.5103433504700660705566f,\
+0.8752629184164106845856f,0.5941145820543169975281f,0.3945342986844480037689f,\
+0.4661326166242361068726f,0.0073588271625339984894f,0.5170202488079667091370f,\
+0.4690007264725863933563f,0.6654530800879001617432f,0.9476742581464350223541f,\
+0.4933638339862227439880f,0.2918433747254312038422f,0.2016727942973375320435f,\
+0.7016656589694321155548f,0.8736049132421612739563f,0.191055159550160169601f,\
+0.5307010114192962646484f,0.8889481076039373874664f,0.0115523664280772209167f,\
+0.4998398735187947750092f,0.6700848620384931564331f,0.4995208983309566974640f,\
+0.1538907447829842567444f,0.2571737091057002544403f,0.9586529098451137542725f,\
+0.6246025026775896549225f,0.9371285131201148033142f,0.9923511571250855922699f,\
+0.3454555813223123550415f,0.7558249053545296192169f,0.2107181670144200325012f,\
+0.9372652801685035228729f,0.6767524704337120056152f,0.7465373151935636997223f,\
+0.4050982249900698661804f,0.5101723610423505306244f,0.9497965183109045028687f,\
+0.0289692510850727558136f,0.1634070957079529762268f,0.4146909262053668498993f,\
+0.0021650679409503936768f,0.1810030029155313968658f,0.4556188201531767845154f,\
+0.1977851442061364650726f,0.6053877938538789749146f,0.4363054675050079822540f,\
+0.8938506888225674629211f,0.6104825991205871105194f,0.4316215068101882934570f,\
+0.2315693595446646213532f,0.4675927339121699333191f,0.6150764389894902706146f,\
+0.8621218334883451461792f,0.3846137975342571735382f}
+
+#define RESULT {0.6083272331025194601395f,0.3876674561956683362496f,0.2923416719993215950879f,\
+0.1858281840181150723623f,0.1777622033720960281755f,0.2755767974985386392639f,\
+0.6189110466547474986854f,0.6267454363670084127591f,0.1831704252906815044710f,\
+0.6471497862444923754310f,0.1891897820789192330437f,0.6364350501403950310930f,\
+0.5515375365220808179245f,0.2736087067004031037065f,0.2250667607234114742099f,\
+0.4659802867043164043004f,0.6833702176797041838441f,0.6736913883505325495449f,\
+0.0030740179151169427958f,0.3520322698255886617602f,0.6793212620436761550735f,\
+0.6215586405472446340781f,0.4871467381023854570366f,0.7290856689840882198794f,\
+0.7417012620322497307157f,0.3060764076080783047118f,0.5218661923298004712279f,\
+0.5967745422524275422660f,0.3552210140242362257368f,0.1689099681737986358154f,\
+0.1929854853271556480721f,0.752546334797111304837f,0.7306048018962054690917f,\
+0.4897808669902837253041f,0.3754155858264546230529f,0.1336821273676178090106f,\
+0.6279725491443334250974f,0.5285382896600216984240f,0.7217639239261176564710f,\
+0.5140922941464451945137f,0.1122861813568946515174f,0.7388069522259688159949f,\
+0.4806098503179282999120f,0.6717986111263679616101f,0.1391858664071369267035f,\
+0.2695186533316221155765f,0.7192045990350994788543f,0.1371209417264223628941f,\
+0.5082621919460940107527f,0.2921004060298734161805f,0.4436303990482610704049f,\
+0.6711009797617260019820f,0.1962616190799932602840f,0.1103441684263640337749f,\
+0.2126403628770875964271f,0.5694607822364758931144f,0.5782222848708917783966f,\
+0.0690796032269536119941f,0.7242256121481682740182f,0.69809096281132376749f,\
+0.4646970495827091318652f,0.1811909351875044538183f,0.6860049185734097276779f,\
+0.7281233753912585981993f,0.5531753555435303670862f,0.2704795450464865247398f,\
+0.2429539608603658584762f,0.3706659125047845337875f,0.0436301407089985798793f,\
+0.6713806714122574348380f,0.6461409215061649780054f,0.3834959767038711997422f,\
+0.6952226974662015779316f,0.6039692179338833621927f,0.0827031826719682033877f,\
+0.7259567403708432342668f,0.4777217213658969674484f,0.7330037868445029580755f,\
+0.7077007368815937393691f,0.2208832069439833623026f,0.2120656512810102645172f,\
+0.4075827434794156989284f,0.5226768598581769120770f,0.7102132909685879846862f,\
+0.4822394836530664030683f,0.6960725041612901842214f,0.6253380086104668444946f,\
+0.6128377044260436834477f,0.1082902389835735668111f,0.6898994401629748862703f,\
+0.5780128119634093675217f,0.6593381318630107124079f,0.5418683181743142451836f,\
+0.3887189835668665716106f,0.1934057072291916479223f,0.2369384549831176911550f,\
+0.4709929270514126020686f,0.7220695597477664318120f,0.0926321653854568632935f,\
+0.6314859919362979523427f,0.1914790269022769997331f,0.4099889146528875039088f,\
+0.7583171167988222993728f,0.4246748836724252296193f,0.6788424846042582228023f,\
+0.7108834330723724503898f,0.4367506950167392987261f,0.3676288421910962611605f,\
+0.3905819425256221721909f,0.6015191410314820741334f,0.0975857051379892537213f,\
+0.7028245349377849615635f,0.5621367138424371301397f,0.3909886152936559167159f,\
+0.0294401706564003176614f,0.1790453013287252037600f,0.6444866108356477329977f,\
+0.1226267854182154504183f,0.0170720823056739953727f,0.7081936907445306461639f,\
+0.3062635855747415369876f,0.7342196272687927516287f,0.3727696775311670207564f,\
+0.0842075009021545223264f,0.6001711719907401043628f,0.4316159054333421063454f,\
+0.7331613587758020189611f,0.0840508200406931138549f,0.4932094637687579607999f,\
+0.5089573121007661127280f,0.1298650506608897969851f,0.5256044879043626494308f,\
+0.0048661322875914753833f,0.2693801321981743046585f,0.6338839281129466929343f,\
+0.0194300547927987350694f,0.5679067732631524201281f,0.2207047568409323534677f,\
+0.2428873816732023682707f,0.1190419938419155360121f,0.1861250528158440442628f,\
+0.3268829619862821389553f,0.7442584101595816070685f,0.2772702073231406161291f,\
+0.7047532323150516031518f,0.2778354302962353084006f,0.4702126778004429574764f,\
+0.7040382261737980762462f,0.5328484040985558278791f,0.3752626107952297673798f,\
+0.43506925228714365961f,0.0073586943328478923027f,0.4753969607482095849349f,\
+0.4373915670200547722857f,0.5819809696038570345777f,0.7387283262105414083365f,\
+0.4568821823646959101595f,0.2838305708191527498840f,0.1989824153354164404384f,\
+0.6054239725907547553518f,0.7032010676851431218992f,0.1887639704824971842445f,\
+0.4859167650222710466146f,0.7108737933392066388194f,0.0115518525401329084923f,\
+0.461991216833716300538f,0.5850357022343135593445f,0.4617402854275272083839f,\
+0.1526873114812071496882f,0.2516501130208930181453f,0.7436753924988391828421f,\
+0.5543244269171754279313f,0.7339001657945646295289f,0.7583630791792929093376f,\
+0.3323391775157006899910f,0.6386111600303081559105f,0.2076538016886759763224f,\
+0.7339632624841636587831f,0.5894041048692751916249f,0.6330786187202321890766f,\
+0.3843027300435838400361f,0.4700794834210440531486f,0.7396909169647786219670f,\
+0.0289611499702619457075f,0.1619680384735620870540f,0.3924484198089013831101f,\
+0.0021650645580242309542f,0.1790518892412555074234f,0.4265067109232646425099f,\
+0.1952458211607971949597f,0.5408723031703753791888f,0.4105773773696593798022f,\
+0.7132904548568874680825f,0.5444667235672814298297f,0.4066755344379027192758f,\
+0.2275170058253208615895f,0.4362522385676954606026f,0.5476906607425194861705f,\
+0.6973492805657204307579f,0.3667075667170831554387f}
+
+#define CSOURCER {0.6045256052166223526001f,0.9455216196365654468536f,0.4476299257948994636536f,\
+0.8624908211641013622284f,0.1751048639416694641113f,0.2067177616991102695465f,\
+0.6848411662504076957703f,0.1348653226159512996674f,0.0069159921258687973022f,\
+0.1496290047653019428253f,0.5665438110008835792542f,0.4359452719800174236298f,\
+0.6547604538500308990479f,0.3381605879403650760651f,0.4259321158751845359802f,\
+0.3060420057736337184906f,0.7704779822379350662231f,0.7058695447631180286408f,\
+0.2373670237138867378235f,0.8205849635414779186249f,0.6789963841438293457031f,\
+0.5250809141434729099274f,0.3359806565567851066589f,0.8941988362930715084076f,\
+0.5461782198399305343628f,0.7568633262999355792999f,0.0259526828303933143616f,\
+0.3250150899402797222138f,0.6072143577039241791f,0.8756139636971056461334f,\
+0.2962085595354437828064f,0.4229678637348115444183f,0.4243144039064645767212f,\
+0.7620028969831764698029f,0.3622896494343876838684f,0.5658242437057197093964f,\
+0.6424440070986747741699f,0.7580267959274351596832f,0.2531452132388949394226f,\
+0.5266989110969007015228f,0.2118590380996465682983f,0.4779220153577625751495f,\
+0.1615962767973542213440f,0.9168031658045947551727f,0.5461866445839405059815f,\
+0.4686870560981333255768f,0.7772213732823729515076f,0.5871783248148858547211f,\
+0.5848031807690858840942f,0.3139644009061157703400f,0.3204141603782773017883f,\
+0.3331634956412017345429f,0.2282590121030807495117f,0.2750317254103720188141f,\
+0.4963629124686121940613f,0.7453477247618138790131f,0.1155001949518918991089f,\
+0.0626524840481579303741f,0.0877018878236413002014f,0.5507565210573375225067f,\
+0.2116370312869548797607f,0.8335358710028231143951f,0.4045845707878470420837f,\
+0.2880227542482316493988f,0.1750094983726739883423f,0.0051561561413109302521f,\
+0.3109287889674305915833f,0.6602919283322989940643f,0.9722995534539222717285f,\
+0.9826813959516584873200f,0.0455837054178118705750f,0.4096118300221860408783f,\
+0.7104403134435415267944f,0.3917615194804966449738f,0.5571686858311295509338f,\
+0.0565565521828830242157f,0.1540721096098423004150f,0.9109257892705500125885f,\
+0.5713340407237410545349f,0.3488348922692239284515f,0.8972954172641038894653f,\
+0.2973396372981369495392f,0.1091936426237225532532f,0.7626331257633864879608f,\
+0.6584706604480743408203f,0.6996708759106695652008f,0.6756794182583689689636f,\
+0.9004421546123921871185f,0.6668148916214704513550f,0.8518152837641537189484f,\
+0.8365677157416939735413f,0.1291190306656062602997f,0.6095453463494777679443f,\
+0.2412315667606890201569f,0.4029275467619299888611f,0.3019328541122376918793f,\
+0.1083198729902505874634f,0.8456356939859688282013f,0.9417407037690281867981f,\
+0.9083450469188392162323f,0.1937242373824119567871f,0.5318046086467802524567f,\
+0.8314437521621584892273f,0.4952740012668073177338f,0.7465563025325536727905f,\
+0.7102393140085041522980f,0.5811418974772095680237f,0.7035941029898822307587f,\
+0.3746570833027362823486f,0.3394373343326151371002f,0.6322447275742888450623f,\
+0.7636191300116479396820f,0.6940386760979890823364f,0.8735245508141815662384f,\
+0.3612738298252224922180f,0.7933200257830321788788f,0.4830590635538101196289f,\
+0.2469964125193655490875f,0.5025922833010554313660f,0.7430270477198064327240f,\
+0.6783937942236661911011f,0.4903185223229229450226f,0.709806025959551334381f,\
+0.3303662906400859355927f,0.6815545372664928436279f,0.0701365978457033634186f,\
+0.4745870968326926231384f,0.8091805852018296718597f,0.9447045121341943740845f,\
+0.5478458073921501636505f,0.1216687532141804695129f,0.9161847713403403759003f,\
+0.3045207932591438293457f,0.6502694808878004550934f,0.0987624628469347953796f,\
+0.8391053467057645320892f,0.0328534897416830062866f,0.3461971958167850971222f,\
+0.2801467711105942726135f,0.5500544901005923748016f,0.0729318000376224517822f,\
+0.0225322381593286991119f,0.50267804320901632309f,0.3478884599171578884125f,\
+0.4298669416457414627075f,0.3537984383292496204376f,0.0529730813577771186829f,\
+0.9533003675751388072968f,0.1842019557952880859375f,0.958756382111459970474f,\
+0.3245136169716715812683f,0.0003973259590566158295f,0.0972583871334791183472f,\
+0.4378789965994656086f,0.3634226778522133827210f,0.2685119728557765483856f,\
+0.2770298384130001068115f,0.8854365111328661441803f,0.5216628303751349449158f,\
+0.4979983693920075893f,0.8733724001795053482056f,0.4699407932348549365997f,\
+0.9364062966778874397278f,0.1337622734718024730682f,0.2712419554591178894043f,\
+0.1766990595497190952301f,0.0543269468471407890320f,0.8402757882140576839447f,\
+0.7507283594459295272827f,0.3062269617803394794464f,0.9195641661062836647034f,\
+0.1318263853900134563446f,0.0826364941895008087158f,0.8222710476256906986237f,\
+0.4441085970029234886169f,0.9617503038607537746429f,0.0283641982823610305786f,\
+0.1431905967183411121368f,0.3793597565963864326477f,0.6144003230147063732147f,\
+0.2128270715475082397461f,0.4704488315619528293610f,0.2076055286452174186707f,\
+0.7435979112051427364349f,0.3391801547259092330933f,0.2479635034687817096710f,\
+0.6721735307946801185608f,0.9013197491876780986786f,0.2140864841639995574951f,\
+0.8460668534971773624420f,0.1650043567642569541931f,0.4003686285577714443207f,\
+0.5522825215011835098267f,0.0638249483890831470490f,0.6903966935351490974426f,\
+0.8547787251882255077362f,0.0291904583573341369629f,0.5434663915075361728668f,\
+0.6236743135377764701843f,0.2417052476666867733002f}
+
+#define CSOURCEI {0.5503273960202932357788f,0.6906704087741672992706f,0.9835249418392777442932f,\
+0.8285484607331454753876f,0.2062614001333713531494f,0.1944643096067011356354f,\
+0.4367609983310103416443f,0.8090620837174355983734f,0.8818644303828477859497f,\
+0.7404803228564560413361f,0.7542522149160504341126f,0.9921960639767348766327f,\
+0.9886121451854705810547f,0.0113218077458441257477f,0.9367801276966929435730f,\
+0.3874237253330647945404f,0.2886805813759565353394f,0.567788839805871248245f,\
+0.7295644441619515419006f,0.0303032915107905864716f,0.2795897088944911956787f,\
+0.7047131718136370182037f,0.7442112853750586509705f,0.8920237845741212368012f,\
+0.1081438604742288589478f,0.8751525697298347949982f,0.9068333031609654426575f,\
+0.2166852983646094799042f,0.4824190363287925720215f,0.7766945236362516880035f,\
+0.4510916722938418388367f,0.1300636469386518001556f,0.5505470838397741317749f,\
+0.6936193336732685565949f,0.1749099576845765113831f,0.8636093880049884319305f,\
+0.2150467522442340850830f,0.1886725709773600101471f,0.1796098565682768821716f,\
+0.4374312213622033596039f,0.8514516223222017288208f,0.7381969136185944080353f,\
+0.8102188156917691230774f,0.1460137623362243175507f,0.8999849110841751098633f,\
+0.4043733575381338596344f,0.0156995235010981559753f,0.6904196902178227901459f,\
+0.2990311514586210250855f,0.1383218024857342243195f,0.8478512773290276527405f,\
+0.3007262717001140117645f,0.229154746979475021362f,0.8078110129572451114655f,\
+0.3176332255825400352478f,0.6924462593160569667816f,0.1364154014736413955689f,\
+0.5433279541321098804474f,0.3276594849303364753723f,0.2006831648759543895721f,\
+0.5037304237484931945801f,0.4962565028108656406403f,0.8996161324903368949890f,\
+0.9357709079049527645111f,0.3390339072793722152710f,0.6029155333526432514191f,\
+0.4153500730171799659729f,0.3041478390805423259735f,0.8489827848970890045166f,\
+0.4482063786126673221588f,0.0903797810897231101990f,0.7382151386700570583344f,\
+0.2669597584754228591919f,0.8226196658797562122345f,0.3985779182985424995422f,\
+0.9789295899681746959686f,0.3041231036186218261719f,0.0663515278138220310211f,\
+0.6667758254334330558777f,0.7548807277344167232513f,0.1922533493489027023315f,\
+0.7942791883833706378937f,0.5580398896709084510803f,0.2016023616306483745575f,\
+0.787146832793951034546f,0.0955459238030016422272f,0.6623697867617011070252f,\
+0.864868474658578634262f,0.7013061288744211196899f,0.8015053984709084033966f,\
+0.9135685982182621955872f,0.6317234965972602367401f,0.9346773549914360046387f,\
+0.9157753759063780307770f,0.0510348035022616386414f,0.4329969524405896663666f,\
+0.9721843507140874862671f,0.8001508046872913837433f,0.8452261472120881080627f,\
+0.0610524858348071575165f,0.8168097324669361114502f,0.2101262793876230716705f,\
+0.3055453812703490257263f,0.9465212575159966945648f,0.9269728232175111770630f,\
+0.7737778765149414539337f,0.5893978821113705635071f,0.2377697187475860118866f,\
+0.5269544571638107299805f,0.0077543654479086399078f,0.8311711428686976432800f,\
+0.0268517597578465938568f,0.2591186594218015670776f,0.4641277943737804889679f,\
+0.6098861405625939369202f,0.0656952331773936748505f,0.6466812007129192352295f,\
+0.1018534512259066104889f,0.2742705782875418663025f,0.8162728524766862392426f,\
+0.3357750270515680313110f,0.4765891996212303638458f,0.8440040023997426033020f,\
+0.1785074654035270214081f,0.5855625644326210021973f,0.8426241897977888584137f,\
+0.7058847947046160697937f,0.7396617024205625057221f,0.9751448985189199447632f,\
+0.7606669445522129535675f,0.8236690396443009376526f,0.8889620001427829265595f,\
+0.7960178293287754058838f,0.3052428201772272586823f,0.6803312664851546287537f,\
+0.6412069997750222682953f,0.0988248009234666824341f,0.4654508423991501331329f,\
+0.6714970665052533149719f,0.5131103205494582653046f,0.8631567060947418212891f,\
+0.8328299173153936862946f,0.1687975851818919181824f,0.2961277081631124019623f,\
+0.2591485660523176193237f,0.1700844173319637775421f,0.9718958893790841102600f,\
+0.0695185582153499126434f,0.4696230851113796234131f,0.9544191421009600162506f,\
+0.3679352095350623130798f,0.2973918146453797817230f,0.0415310803800821304321f,\
+0.4892336544580757617950f,0.5171590568497776985169f,0.3534862431697547435761f,\
+0.2354387864470481872559f,0.6779259913600981235504f,0.3834532154724001884460f,\
+0.3174350797198712825775f,0.3418120350688695907593f,0.0535557498224079608917f,\
+0.9285596096888184547424f,0.3862650538794696331024f,0.4328473098576068878174f,\
+0.1581165478564798831940f,0.7887120461091399192810f,0.7448797873221337795258f,\
+0.5185996759682893753052f,0.8651678604073822498322f,0.1524438308551907539368f,\
+0.2392775672487914562225f,0.5761575847864151000977f,0.7395762302912771701813f,\
+0.0583172617480158805847f,0.6962534948252141475678f,0.4206145536154508590698f,\
+0.0281158541329205036163f,0.8313249954953789710999f,0.2333360086195170879364f,\
+0.8865877203643321990967f,0.3746785433031618595123f,0.87671328987926244736f,\
+0.4027077830396592617035f,0.2890332732349634170532f,0.8538430598564445972443f,\
+0.5499771209433674812317f,0.5128610017709434032440f,0.6321087554097175598145f,\
+0.4165538274683058261871f,0.3217771751806139945984f,0.9717370062135159969330f,\
+0.5348322447389364242554f,0.3416590173728764057159f,0.9565287167206406593323f,\
+0.9951003189198672771454f,0.3422884084284305572510f,0.7870580093003809452057f,\
+0.9234123295173048973084f,0.5238970420323312282562f}
+#define CRESULTR {0.6700223015238303547747f,0.9051590648529930227539f,0.9783774998303537140387f,\
+0.9672554578415690773596f,0.1806879116022510611828f,0.2113884833531175511112f,\
+0.6724311908168314477763f,0.2759693779071136221504f,0.0171117603025009445972f,\
+0.2676571377242007998554f,0.7836070482910290069256f,0.9837911114618788088748f,\
+1.0787649507707848250959f,0.3258715909732741722316f,0.8818391305817397940459f,\
+0.3412489698350346656319f,0.6791962837910036077105f,0.7436127103435716811930f,\
+0.40184826884232582866f,0.6757254959645757619313f,0.6216816234807176488886f,\
+0.7106811634553994450059f,0.5496317899100798820555f,1.015517869987778709628f,\
+0.5020506061187628432663f,0.9811456923663512963429f,0.0682501782366792819623f,\
+0.3276872649171290174941f,0.6393144648282618192070f,0.9360249253515308121010f,\
+0.3486021801541281939230f,0.405155698729944113712f,0.5200555835311830854550f,\
+0.8452234271752276928424f,0.3567295147730688009702f,0.8928456199942530480129f,\
+0.5846382117554749235922f,0.6534877266970448017602f,0.2555268336748864332897f,\
+0.5599022272385358878211f,0.4549851524880720865518f,0.6983186009546583639107f,\
+0.3278445848029415965463f,0.7317436304730139395858f,0.9243668151604532701171f,\
+0.4997101034619103598899f,0.6512014053656888235011f,0.7461784468374338397112f,\
+0.5613804235723615088105f,0.309377290465780441231f,0.6302193796318024121561f,\
+0.3488048678688123183100f,0.2359369023748482674385f,0.5207697215592063111345f,\
+0.4975483327992256676886f,0.8371220343907752603485f,0.1171268218028372609663f,\
+0.085272785233540815408f,0.0974986984973703479929f,0.5164560743022618138909f,\
+0.2683348894394235739647f,0.7764310536494951620057f,0.8045234481921298419493f,\
+0.6958959159533119054331f,0.1940650650900959395262f,0.0075996484393591736892f,\
+0.3536342521606328781481f,0.6152689741862609196232f,0.9952856734893198442649f,\
+0.8206704954595607226509f,0.0459255053037718463660f,0.6307753783837566352588f,\
+0.6388147154641353742122f,0.6937233166977520015806f,0.5697295509652193779004f,\
+0.1802327077236753061218f,0.1675371469878289276689f,0.7230999921866064772402f,\
+0.7176490691010239952874f,0.5749086647774364067232f,0.7279693322506849417763f,\
+0.5413870504782296588786f,0.1504476557625347432623f,0.6581157602540366191590f,\
+0.8675383161064098569426f,0.6076707020048850438343f,0.7819483789931592765399f,\
+0.9976690503006511168138f,0.8038234125831255072470f,0.9466047824946693944881f,\
+1.0263044057305568124150f,0.1954383476167207978058f,0.9991226583234396052546f,\
+0.5824462236684256888353f,0.3833026614151368027805f,0.3492943337672331227672f,\
+0.3315115099350262606315f,0.9442386171423264862312f,0.9899258002262354416700f,\
+0.7216294786971718666635f,0.3920325460401206107974f,0.5034740230892749135450f,\
+0.715969761025848305813f,0.9550125571098367904810f,1.0265780142294762544708f,\
+0.8803585794351714843842f,0.6748726933268143213240f,0.6286862272305427934427f,\
+0.4593360950510761986365f,0.3269925373376404986736f,0.8950979801820350134634f,\
+0.6434757060207739742808f,0.6268824366882729259842f,0.7824259493911607243888f,\
+0.4869178781705328362683f,0.6618946105318512795890f,0.6319261919275969141552f,\
+0.2444724751522657224534f,0.4924981727592058766696f,0.9272283746811394999909f,\
+0.6354081057135144705583f,0.5455716136398853777223f,0.9397290975289604997300f,\
+0.3281437517029104355970f,0.7390025847943897385761f,0.1571298352097142136952f,\
+0.6681717696917298665582f,0.893260926700763513431f,1.0727843133940448971941f,\
+0.7758756582495047737780f,0.2577884404871108037227f,1.0152118695965053341013f,\
+0.553316515865495128779f,0.6088582613070312454795f,0.1618775254222162562900f,\
+0.8458278989313633422498f,0.0331641659985394132715f,0.4056540942022494600217f,\
+0.4254458405105830398618f,0.6108828412056167556088f,0.1710530527126769284596f,\
+0.0497407205620656947542f,0.4747317015892947855704f,0.3618696796533303894350f,\
+0.4287418625744875422257f,0.3485740919790226710617f,0.1655375133873851212218f,\
+0.7428884062630719542497f,0.2271172969578298117543f,1.0587395337282918816868f,\
+0.3549940948693925402147f,0.0004346469449674766222f,0.0971187244038783509259f,\
+0.5043807505243238509252f,0.4434874448032950500220f,0.2951797103676901401492f,\
+0.2845053188094572860223f,0.8815102337365799956004f,0.5368898054807562658652f,\
+0.4988328370209159090543f,0.745435623332440511213f,0.4391683137636283595917f,\
+1.0422403039497714072326f,0.1545117394214212958037f,0.3165746040477503964183f,\
+0.1791895467797269270172f,0.1089461488105609721089f,0.9065124792766549033374f,\
+0.7446224625751999282031f,0.6296662678760955866864f,0.7337000953456223051319f,\
+0.1387263358911398902773f,0.1169149268680415021393f,0.8975235374861081361075f,\
+0.4182178630757872883628f,0.9119369228139623251295f,0.0340248805832462572485f,\
+0.1423301258754861298161f,0.6888548451397347172076f,0.5685106882588889520847f,\
+0.4923020191500164788323f,0.4917581413760083730580f,0.4716616017939372351719f,\
+0.6955693872489776552470f,0.3523112018531558975454f,0.5222250480132760719343f,\
+0.7144705774015845944902f,0.8119440584245034564503f,0.3164274689259520823015f,\
+0.7538323331802344595687f,0.1811571114058267151226f,0.9128449761317551924833f,\
+0.6233160136433549824986f,0.0717615749734574065455f,1.0473491540209625139113f,\
+1.0924869453095222837646f,0.0328835678516360627177f,0.7973589739562461087274f,\
+0.9908609316019793000763f,0.3104246876762664641980f}
+
+#define CRESULTI {0.3914561710408779870996f,0.2745677431871340612446f,0.8850988190375015385314f,\
+0.3546606100359354085683f,0.2026838146454169320432f,0.1884673919393772267839f,\
+0.2801601885873738484456f,1.0096958835716720592757f,1.21412343558816204769f,\
+0.8776375911322839007411f,0.5620073675207013508270f,0.9130433942963852578245f,\
+0.5770284711891953133289f,0.0101200891695042028556f,0.8779935002098492313749f,\
+0.3667139971005198284537f,0.1664312994282131086266f,0.3494312783943472333625f,\
+0.8104125516371111226377f,0.0164786111567649697085f,0.1816457336156695190343f,\
+0.5593166230651334114299f,0.7569161316066348454967f,0.3415023725885689698245f,\
+0.0814423238542508892701f,0.4465689540632135634546f,1.275733507144991119020f,\
+0.197487841611818731868f,0.3421719548772197971864f,0.3349549978483222778536f,\
+0.4357966181675047567801f,0.1096343010109522564388f,0.4859836370575167374675f,\
+0.3800931088000560897910f,0.1548265257107722947527f,0.6348894325615116462913f,\
+0.1460748031318926942745f,0.1110957110750060844451f,0.1700664034230296439709f,\
+0.3412176537402174525404f,1.0332395638414424432483f,0.6273383485614248966655f,\
+0.9957192459042429888427f,0.0691093109901288471519f,0.6804424693811944591104f,\
+0.3344738416260302771299f,0.0090436204351948476510f,0.5006804162977720462635f,\
+0.2172201211207329951680f,0.1261162082552027552396f,0.9120640605812813106468f,\
+0.2753688308103523496584f,0.2209039383694014757609f,0.8997305533684579748055f,\
+0.2536420004619579504634f,0.3903699376999557602019f,0.1354191697515705339328f,\
+0.6007399379388951299319f,0.3370127497194151389159f,0.1507780721992685313282f,\
+0.5203153088877445764382f,0.254583375618394558426f,0.8702994198605253917123f,\
+1.0924089238964773684870f,0.3407939274374255367306f,0.6883985279629690756664f,\
+0.3940203751449571356602f,0.2021529986071308460094f,0.2883410464579913012884f,\
+0.1832164764792163502705f,0.0904370855097187398286f,0.6870692259557662495695f,\
+0.1667494081756663859562f,0.7986735402486416779411f,0.2997470364729120650971f,\
+1.4723672873315984954701f,0.3058215886262277694030f,0.0317778181669746695448f,\
+0.4953897349233554736614f,0.7593857543036769408573f,0.0933417291983620195373f,\
+0.8587250458616788595379f,0.6140082043678934953235f,0.1179425317948916696054f,\
+0.5008800041022678506408f,0.0606528647874819346053f,0.4208891412439614287955f,\
+0.3345057926491249999934f,0.4488362148523600825278f,0.356228513965734405744f,\
+0.3862019012866550471408f,0.7133939454258028112221f,0.6183512140459618278143f,\
+1.122372846973830329276f,0.0435912326295722213354f,0.4149318455829275609226f,\
+1.4136182419356593253923f,0.360095911709175209303f,0.3059781012378688380693f,\
+0.0293528815458468754496f,0.9850054988638156094893f,0.1610071461548980287226f,\
+0.1615738175268226772818f,0.7804595725744208900565f,0.4664649257591839126569f,\
+0.4516332153201338406312f,0.4324429865103157633044f,0.1499229835931424337225f,\
+0.4861395789308433634801f,0.0069254200843589181283f,0.5470248281814621416075f,\
+0.0157419761082240212968f,0.1652796264802975090280f,0.2251845784941430561599f,\
+0.5809144105432306748327f,0.0370371154221026954723f,0.5409142410066014594605f,\
+0.0961579912696427369090f,0.2170435871168209518434f,0.4413938390627674124289f,\
+0.2180518991856933708196f,0.3882731529916919055445f,0.4793791546290147587150f,\
+0.1615500633583723533171f,0.3727683427019338191499f,1.1092002442556854191480f,\
+0.6007159335006776457178f,0.3670729131136168943428f,0.3082959548830728202518f,\
+0.5833221942824414751883f,1.0459318594890267828390f,0.3263494274187709875967f,\
+0.8544844347571096676575f,0.2053831793406840910965f,0.7963141410348304471967f,\
+0.3137393761405720127300f,0.0990397931617461729781f,0.4344101753145302446946f,\
+0.7023788886417181576150f,0.3911554522022889779365f,1.1544412437572197926983f,\
+1.0984333102013155158971f,0.1328621940810992829718f,0.268167531788618462851f,\
+0.2190523476868022068054f,0.1514050595867235948777f,1.452314392851102864412f,\
+0.0312862499326923282350f,0.4864975811326933685663f,0.3000795354832859751504f,\
+0.3425769720223186820540f,0.3064807342294366687696f,0.0411636957365836206324f,\
+0.4217989293277185081088f,0.4809545441238126106676f,0.3404220390913085259044f,\
+0.2214498702533347351817f,0.3018772698523388142711f,0.2996779751331964392058f,\
+0.2530674633040843612974f,0.1693130128868851891344f,0.0432918302807213800643f,\
+0.3147578695966239403781f,0.3983398179395671312442f,0.4233396532725078320603f,\
+0.1544509091417925472634f,1.000697611141370568788f,0.3487050795605025621526f,\
+0.3006071168291280515383f,0.9542614300639570279472f,0.0718340034799053589465f,\
+0.2395154786718341477503f,0.6434277607558438472069f,0.3585399891990152521082f,\
+0.0482004898594938432921f,0.2679535503180693334357f,0.4468782830994436072736f,\
+0.0275539888537934679613f,0.8228411197528838760817f,0.1637277172538824099313f,\
+1.0994704384405307173722f,0.3084433992108448485681f,1.0856016429316568405739f,\
+0.2389273879432435854220f,0.2631293443272026966184f,1.0016126450700377770175f,\
+0.3562135410626017795188f,0.2353197404250201296705f,0.6834823618792332799998f,\
+0.2126404560740041416178f,0.3234875849405334791165f,0.9562375286253093076283f,\
+0.4069690501749418376498f,0.3539780611029934576095f,0.5294802297322954709458f,\
+0.3733196120144765539628f,0.3559718013547358839155f,0.6068341504607892566980f,\
+0.5969952503542278465787f,0.5352237566999263895795f}
+
+
+
+
+void stanhsTest(void) {
+ float in[]=SOURCE;
+ float res[]=RESULT;
+ float out;
+ int i;
+
+ for (i=0;i<200;i++){
+ out=stanhs(in[i]);
+ assert(( (fabs(out-res[i]))/(fabs(out)) )<1e-6);
+ }
}
-void ctanhsTest() {
- printf(">> Float Complex scalar\n");
- /* FIXME : Implement some test here ... */
+void ctanhsTest(void) {
+ float inR[]=CSOURCER;
+ float inI[]=CSOURCEI;
+ float resR[]=CRESULTR;
+ float resI[]=CRESULTI;
+ floatComplex in,out;
+ int i;
+
+ for (i=0;i<200;i++){
+ in=FloatComplex(inR[i],inI[i]);
+ out=ctanhs(in);
+ assert(( (fabs(creals(out)-resR[i]))/(fabs(creals(out))) )<1e-6);
+ assert(( (fabs(cimags(out)-resI[i]))/(fabs(cimags(out))) )<1e-6);
+ }
}
-void stanhaTest() {
- printf(">> Float array\n");
- /* FIXME : Implement some test here ... */
+void stanhaTest(void) {
+ float in[]=SOURCE;
+ float res[]=RESULT;
+ float out[200];
+ int i;
+
+ stanha(in,200,out);
+ for (i=0;i<200;i++){
+ assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<1e-6);
+ }
}
-void ctanhaTest() {
- printf(">> Float Complex array\n");
- /* FIXME : Implement some test here ... */
+void ctanhaTest(void) {
+ float inR[]=CSOURCER;
+ float inI[]=CSOURCEI;
+ float resR[]=CRESULTR;
+ float resI[]=CRESULTI;
+ floatComplex *in,out[200];
+ int i;
+
+ in=FloatComplexMatrix(inR,inI,200);
+ ctanha(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 testTanh() {
diff --git a/src/elementaryFunctions/tanh/testTanh.h b/src/elementaryFunctions/tanh/testTanh.h
index 2a82efe8..ac4c546a 100644
--- a/src/elementaryFunctions/tanh/testTanh.h
+++ b/src/elementaryFunctions/tanh/testTanh.h
@@ -15,6 +15,7 @@
#include <stdio.h>
#include <assert.h>
+#include <math.h>
#include "tanh.h"
#include "constant.h"