1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
|
/*
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
* Copyright (C) 2008-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
* you should have received as part of this distribution. The terms
* are also available at
* http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
*
*/
#include "testAcos.h"
#include <math.h>
#include <stdio.h>
#include <assert.h>
#define InRF {0.4424391170032322406769f,0.6678683990612626075745f,0.3319660718552768230438f, \
0.9546736516058444976807f,0.0156700448133051395416f,0.8749210601672530174255f, \
0.4522444806061685085297f,0.5117330569773912429810f,0.0253186416812241077423f, \
0.0014351801946759223938f,0.9977079438976943492889f,0.2380047738552093505859f, \
0.9923671730794012546539f,0.8377430764958262443542f,0.3201149418018758296967f, \
0.8609968703240156173706f,0.2300571207888424396515f,0.0514277378097176551819f, \
0.7738713542930781841278f,0.7888738475739955902100f,0.3247241438366472721100f, \
0.4342710664495825767517f,0.2505763596855103969574f,0.1493970695883035659790f, \
0.1849924144335091114044f,0.4753739954903721809387f,0.1413027080707252025604f, \
0.8269120678305625915527f,0.7530783289112150669098f,0.4791984809562563896179f, \
0.5703613697551190853119f,0.4661327209323644638062f,0.9719535936601459980011f, \
0.9472813690081238746643f,0.2443005586974322795868f,0.9114723093807697296143f, \
0.1021176860667765140533f,0.442370138131082057953f,0.7598891309462487697601f, \
0.0506714452058076858521f,0.9817296904511749744415f,0.6537305163219571113586f, \
0.7148343580774962902069f,0.5314728766679763793945f,0.3238495090045034885406f, \
0.8823759732767939567566f,0.4649840756319463253021f,0.3200931679457426071167f, \
0.6445384477265179157257f,0.6649690875783562660217f,0.87176320655271410942f, \
0.5702412538230419158936f,0.9155691773630678653717f,0.7551447888836264610291f, \
0.8835946596227586269379f,0.7714338693767786026001f,0.535495069343596696854f, \
0.1810054751113057136536f,0.2950546029023826122284f,0.6453578546643257141113f, \
0.7128289067186415195465f,0.5975380046293139457703f,0.5275121121667325496674f, \
0.7590293344110250473022f,0.8550809700973331928253f,0.6527025634422898292542f, \
0.7750031943432986736298f,0.3234997726976871490479f,0.0574064985848963260651f, \
0.5859434073790907859802f,0.3590891859494149684906f,0.146858902648091316223f, \
0.2846125257201492786407f,0.7778714792802929878235f,0.6364495265297591686249f, \
0.2102845311164855957031f,0.3402740904130041599274f,0.46986890118569135666f, \
0.3029589070938527584076f,0.8358892183750867843628f,0.2167098228819668292999f, \
0.372365341521799564362f,0.4379987935535609722137f,0.9151138328015804290771f, \
0.9195669055916368961334f,0.3805362572893500328064f,0.1327533251605927944183f, \
0.1664179805666208267212f,0.3607654091902077198029f,0.1161730112507939338684f, \
0.0462395879440009593964f,0.8910173103213310241699f,0.4135520034469664096832f, \
0.5144748641178011894226f,0.7328222631476819515228f,0.1954176928848028182983f, \
0.7234130431897938251495f,0.1745128417387604713440f,0.0849626506678760051727f, \
0.1494962759315967559814f,0.3685970292426645755768f,0.6921154772862792015076f, \
0.734952067490667104721f,0.8488794136792421340942f,0.9639964443631470203400f, \
0.6939264284446835517883f,0.7593796211294829845428f,0.8503674715757369995117f, \
0.3021389641799032688141f,0.7913839695975184440613f,0.5300843580625951290131f, \
0.9491565059870481491089f,0.1250380431301891803741f,0.1733723590150475502014f, \
0.0553417871706187725067f,0.7666068188846111297607f,0.1206528753973543643951f, \
0.0562950810417532920837f,0.6550347781740128993988f,0.1173083875328302383423f, \
0.7377077308483421802521f,0.7103199632838368415833f,0.3135588350705802440643f, \
0.6241931691765785217285f,0.9126206659711897373199f,0.2805461687967181205750f, \
0.5542117445729672908783f,0.5504442807286977767944f,0.3022916098125278949738f, \
0.1218430632725358009338f,0.1788175995461642742157f,0.3169520534574985504150f, \
0.1164998249150812625885f,0.8661109572276473045349f,0.7163351974450051784515f, \
0.6740669626742601394653f,0.1436607432551681995392f,0.9407137231901288032532f, \
0.9242008137516677379608f,0.9963994324207305908203f,0.0636921771802008152008f, \
0.7568332878872752189636f,0.1861553504131734371185f,0.6694165151566267014f, \
0.6417399053461849689484f,0.2864959994331002235413f,0.1503058592788875102997f, \
0.036585446447134017944f,0.8965126336552202701569f,0.2470208695158362388611f, \
0.4511714405380189418793f,0.8758140746504068374634f,0.8369763311930000782013f, \
0.6116396905854344367981f,0.8594635161571204662323f,0.8739381656050682067871f, \
0.8611579411663115024567f,0.6650390280410647392273f,0.7033504783175885677338f, \
0.0680055823177099227905f,0.4108084668405354022980f,0.3225740874186158180237f, \
0.9049567128531634807587f,0.7221073396503925323486f,0.9756754324771463871002f, \
0.931904456578195095062f,0.4758459976874291896820f,0.6085055340081453323364f, \
0.0411347192712128162384f,0.27580172289162874222f,0.8152392762713134288788f, \
0.1618081480264663696289f,0.0729317762888967990875f,0.9948789654299616813660f, \
0.6547168060205876827240f,0.4749407302588224411011f,0.1327822064049541950226f, \
0.1489921221509575843811f,0.9931546817533671855927f,0.605664949864149093628f, \
0.2185817272402346134186f,0.1360632320865988731384f,0.8656457341276109218597f, \
0.1623940262943506240845f,0.9229755070991814136505f,0.6870755525305867195129f, \
0.2901548030786216259003f,0.6380550339818000793457f,0.5040368759073317050934f, \
0.1559905512258410453796f,0.2356583862565457820892f,0.4607480820268392562866f, \
0.9618054111488163471222f,0.8233367735520005226135f,0.9555186624638736248016f, \
0.2299523688852787017822f,0.2144343988038599491119f,0.4322205847129225730896f, \
0.5298418900929391384125f,0.1070291120558977127075f}
#define InIF {0.9676976692862808704376f,0.6755087869241833686829f,0.9605711805634200572968f, \
0.8287713527679443359375f,0.3716058083809912204742f,0.8529331116005778312683f, \
0.6630636467598378658295f,0.3127506356686353683472f,0.0578817431814968585968f, \
.4168665865436196327209f,0.6979019264690577983856f,0.3232105635106563568115f, \
0.6520457030273973941803f,0.6255217781290411949158f,0.5866900808177888393402f, \
0.1662572268396615982056f,0.3538595554418861865997f,0.0223209084942936897278f, \
0.0555838677100837230682f,0.8830965086817741394043f,0.6798805170692503452301f, \
0.9601878477260470390320f,0.5503053902648389339447f,0.9100682642310857772827f, \
0.9618742396123707294464f,0.8895119810476899147034f,0.8663921202532947063446f, \
0.6742273755371570587158f,0.6948372707702219486237f,0.6285339510068297386169f, \
0.7384302965365350246429f,0.0932216811925172805786f,0.3283788901753723621368f, \
0.3349032746627926826477f,0.7320226985029876232147f,0.4482167810201644897461f, \
0.5952123203314840793610f,0.3971578357741236686707f,0.2822407945059239864349f, \
0.5986177157610654830933f,0.9705053125508129596710f,0.9648752519860863685608f, \
0.2223112653009593486786f,0.0073375217616558074951f,0.3558401078917086124420f, \
0.3362461170181632041931f,0.6462869024835526943207f,0.5453626606613397598267f, \
0.5815327730961143970490f,0.9218191178515553474426f,0.4494518819265067577362f, \
0.5443653240799903869629f,0.8210619115270674228668f,0.0031680269166827201843f, \
0.3902114122174680233002f,0.0661126133054494857788f,0.5113567491061985492706f, \
0.0052305692806839942932f,0.0172157580964267253876f,0.8574225939810276031494f, \
0.872694595251232385635f,0.5010691648349165916443f,0.3054686388932168483734f, \
0.9594172257930040359497f,0.6219576788134872913361f,0.6678035454824566841125f, \
0.3451700019650161266327f,0.439822167158126831055f,0.9729993590153753757477f, \
0.4124652473255991935730f,0.9270431711338460445404f,0.2170634549111127853394f, \
0.5178697113879024982452f,0.8865239778533577919006f,0.3678963701240718364716f, \
0.4449110589921474456787f,0.0826504887081682682037f,0.6078358581289649009705f, \
0.4201686209999024868011f,0.4264193121343851089478f,0.1516494569368660449982f, \
0.9087635399773716926575f,0.6092100176028907299042f,0.5259142145514488220215f, \
0.9537041061557829380035f,0.9292181981727480888367f,0.8420463739894330501556f, \
0.0477776136249303817749f,0.8043447365052998065948f,0.8733733976259827613831f, \
0.6313782478682696819305f,0.5507782585918903350830f,0.7975669191218912601471f, \
0.7488008355721831321716f,0.7785643390379846096039f,0.5666997302323579788208f, \
0.4409633320756256580353f,0.3067779587581753730774f,0.8593392628245055675507f, \
0.1920152455568313598633f,0.3279649713076651096344f,0.4025174556300044059753f, \
0.3560156985186040401459f,0.5213593374937772750854f,0.4409417365677654743195f, \
0.4940686235204339027405f,0.7799209128133952617645f,0.3915464095771312713623f, \
0.1789123923517763614655f,0.4986406108364462852478f,0.6278176582418382167816f, \
0.4048861656337976455688f,0.7036139038391411304474f,0.7250975342467427253723f, \
0.5160594466142356395721f,0.7005459144711494445801f,0.6976801478303968906403f, \
0.1013754708692431449890f,0.3362301974557340145111f,0.4427097495645284652710f, \
0.1286799986846745014191f,0.4155713254585862159729f,0.7760182614438235759735f, \
0.4942846037447452545166f,0.1127647892571985721588f,0.7894535725936293601990f, \
0.0490748188458383083344f,0.2449031788855791091919f,0.4716751468367874622345f, \
0.1031448738649487495422f,0.1776066529564559459686f,0.0619737505912780761719f, \
0.0768572040833532810211f,0.5897265700623393058777f,0.6714532985351979732513f, \
0.3335268478840589523315f,0.5744381849654018878937f,0.3185150483623147010803f, \
0.9473985652439296245575f,0.57160880789160728455f,0.5848113656975328922272f, \
0.7857599845156073570251f,0.3324664360843598842621f,0.5449722055345773696899f, \
0.9705804106779396533966f,0.3315144600346684455872f,0.9949513408355414867401f, \
0.9098131582140922546387f,0.2666130834259092807770f,0.6014269543811678886414f, \
0.6469328044913709163666f,0.3073055054992437362671f,0.8659543325193226337433f, \
0.7722052121534943580627f,0.3620244706980884075165f,0.3966818638145923614502f, \
0.0553487525321543216705f,0.7595019852742552757263f,0.3521075001917779445648f, \
0.7926115561276674270630f,0.4941224199719727039337f,0.1269726501777768135071f, \
0.0467983442358672618866f,0.3756254166364669799805f,0.2301741042174398899078f, \
0.9152546999976038932800f,0.3194008930586278438568f,0.9443374704569578170776f, \
0.8468258534558117389679f,0.1096191117540001869202f,0.2030929992906749248505f, \
0.6782134883105754852295f,0.8342829556204378604889f,0.9650435885414481163025f, \
0.9410973764024674892426f,0.3796364162117242813110f,0.7794532743282616138458f, \
0.9074576767161488533020f,0.7145868721418082714081f,0.9640186801552772521973f, \
0.4678759598173201084137f,0.2299097580835223197937f,0.8920741169713437557220f, \
0.1667113658040761947632f,0.4915095348842442035675f,0.3024059170857071876526f, \
0.1440355475060641765594f,0.9354602731764316558838f,0.4561293558217585086823f, \
0.5141706829890608787537f,0.2665198049508035182953f,0.4771588463336229324341f, \
0.3820844483561813831329f,0.6670796470716595649719f,0.0574905085377395153046f, \
0.4276479780673980712891f,0.3921637185849249362946f,0.0390139548107981681824f, \
0.0896534039638936519623f,0.1133126895874738693237f}
#define ResRF {1.255529833022194452496f,1.0200026717383132712769f,1.3324589639215225211899f, \
0.8677406156444121831939f,1.5561073447625946020167f,0.9286968935379427136922f, \
1.1937226600193293624130f,1.067915927099262640709f,1.545517326047555650703f, \
1.5694716389035829884335f,0.7825751983710025339036f,1.3429338762216549429951f, \
0.7639188473405255086490f,0.8664584310401818312286f,1.2939802433811951054565f, \
0.5990898407849659657032f,1.3527841901085291276274f,1.5193587499057941148095f, \
0.6904789613904125378241f,0.9961995980090498914450f,1.3021994564088539281244f, \
1.26004387047876331707f,1.3507596621653372714889f,1.4603873397973008430029f, \
1.4376480261770669955013f,1.2185152537606129818926f,1.4640602217743992063959f, \
0.894854807527207585238f,0.9591997301055474878240f,1.164221222913740527716f, \
1.1146461656150485897143f,1.0887716288036126677241f,0.5830870294869971992568f, \
0.6121373513947664379842f,1.3737517861001466989990f,0.7178494362155037888940f, \
1.4830224178312794158785f,1.15302764511686950399f,0.7870894488597584004452f, \
1.5273165827155432694440f,0.9046421279509564428167f,1.1098998065332701390417f, \
0.8178369263058140603562f,1.0104814656927540994502f,1.2625532917342228156343f, \
0.6793632590344759192291f,1.1798090506359553142346f,1.2887180301097407308930f, \
1.0105656841969548054294f,1.0915011675220371856199f,0.7542427310988851774098f, \
1.0653686177891663611206f,0.8900627912448225709241f,0.7149348217487093704037f, \
0.7102600249699384526991f,0.6960735527765307129044f,1.088533305867128486710f, \
1.388790211991853373874f,1.2713337729965381583952f,1.088577004770347134155f, \
1.0451133763707507462470f,1.028861647762511877f,1.0500108990334240388620f, \
1.0388362590565514143037f,0.8513413455225736781173f,1.0298997364083655181588f, \
0.7980374938553029817712f,1.272512010082343492101f,1.5296574807566454268226f, \
1.0155756589776196996411f,1.3087404816635104243261f,1.4268507232054599143112f, \
1.3171287563927265296115f,1.0046812403038571925862f,0.9520223764784513376114f, \
1.3780800950311928865233f,1.2249760089920562755594f,1.1679630143718853219070f, \
1.2895295822531129825705f,0.7757074400337321540277f,1.3549804577387012383127f, \
1.2966028029732796778006f,1.1956170559024092980849f,0.7573690728750529510549f, \
0.9358060876311721232312f,1.2935811029700821084276f,1.4692924940131448785507f, \
1.403798205397557063989f,1.2904936439816625526333f,1.4833304573509458190728f, \
1.5316962881883187108656f,0.7896852637031629429387f,1.2487229023268595629048f, \
1.1608910658948932148604f,1.0024005845134518200013f,1.4005673415801471737296f, \
0.8902696237675791213206f,1.4033814016250207856729f,1.5063701881984010721993f, \
1.4235075164410782022628f,1.2154417216544426416647f,0.9067832509325496337382f, \
0.8451361326845713284328f,0.8105760364528488137736f,0.6677149293012821784643f, \
0.9376824522142382933865f,0.9834531063046333398958f,0.7435234402945338771929f, \
1.2692770995801996303243f,0.8506643591613352040071f,1.1209388788239313949902f, \
0.6577834067257107841797f,1.4685347852910790589220f,1.4304586887418837548580f, \
1.5216097729687187989356f,0.9508172376200363373755f,1.4718437723337385314437f, \
1.5147598813826532726523f,0.9228342692416234838149f,1.463425399368290413804f, \
0.7595378867190821781108f,0.8934128848181713822285f,1.3234788454526924539323f, \
1.0022503118871550764624f,0.4807627355715887174092f,1.3509123886799738745168f, \
0.9845326329544197285770f,1.0135326383159133367684f,1.2959003688929946473962f, \
1.4493071459819437674099f,1.393898839191649585700f,1.2489929355782913856f, \
1.4543809570962817900863f,0.8282434492927793767691f,0.979974070275603015290f, \
0.9016529084751209177639f,1.4461450567069793482489f,0.6070295384428338048011f, \
0.9308147234333767894299f,0.7189471755291521049003f,1.5158092773905904593335f, \
0.9872214614683698652442f,1.3935021592326080064339f,0.9771853998510096062091f, \
1.1193192900537867195965f,1.296487096062820532083f,1.4643457982927459148925f, \
1.5437362050733878238162f,0.6187847061723403818689f,1.3588173690830449569233f, \
1.1915339871130086191187f,0.6686084978144331003591f,0.9583842322663218560308f, \
1.0912664509894050013372f,0.7181625782359223331142f,0.7233140240221890282513f, \
0.5428178535441999796873f,1.0471999339904087822362f,0.8769816861755428405445f, \
1.5175053601847408035752f,1.1993783088315406182289f,1.2453663926230837954989f, \
0.4514953581289469219939f,0.8662667007384096118372f,0.4974730247398895799371f, \
0.9147617192703559885203f,1.1061521220724712666339f,1.1357238908175482094975f, \
1.5394063571165421677733f,1.2932180862175921554069f,0.6824933434976203638911f, \
1.43686302401783927429f,1.5148015609296603400935f,0.8950325309450218869145f, \
1.1033723890979516557564f,1.1179316393641773874634f,1.4660961587943455164407f, \
1.4605422546022659435749f,0.7934640514556516865952f,1.1421515306768439401708f, \
1.3722266762337298473540f,1.4378608786974975686235f,0.9484918901540384528204f, \
1.409977666065525436778f,0.7322918733552260528441f,0.8770810468745882104713f, \
1.2797762559830598849686f,1.113354965599829160539f,1.1052282890851641283803f, \
1.4319057784002142685864f,1.3414927111991592489915f,1.150175091750528233447f, \
0.6311676673228704403940f,0.8947310349200747747744f,0.3427408557056949023334f, \
1.3585307702603606205827f,1.3703718078359574672476f,1.1242902219788122319954f, \
1.0158255484348914787773f,1.4642540410581941223711f}
#define ResIF {-0.89394934684766447219f,-0.7269960621148598978181f,-0.873228865930417708086f, \
-0.9411580369058477613109f,-0.3635823360806625381692f,-0.9266296361203899545345f, \
-0.6634195150572302912551f,-0.3497653794429004814326f,-0.0578679396761476172451f, \
-0.4056499805826500049122f,-0.8741287625997348209594f,-0.3259826010316183575455f, \
-0.8401934298465025818814f,-0.7488675904074600930826f,-0.5773032354998757220699f, \
-0.2907264701768227377343f,-0.3549390003452199127132f,-0.0223486092632642734113f, \
-0.0871612243254889368371f,-0.9176985409654165870563f,-0.6568925683359604361655f, \
-0.8873647393225528867688f,-0.5376252047526711708159f,-0.8204495329467825781578f, \
-0.8603334854615410920431f,-0.8439135541376909799283f,-0.7874200016694758996749f, \
-0.7820668187587638264802f,-0.7702271668977674901058f,-0.6397730584800335185136f, \
-0.7501646240735952986256f,-0.1050163064317838901296f,-0.5657338500383883861389f, \
-0.5540440668540072000070f,-0.6903185807895677594814f,-0.6373808782648936466231f, \
-0.5666907482042378152443f,-0.4219005724672658108609f,-0.3886193868474250856515f, \
-0.5681250599967884173935f,-1.0378225966102092581167f,-0.9349807842842002836292f, \
-0.3001473873644374679159f,-0.0086619472523597629970f,-0.3652645919168465704630f, \
-0.5124455823851000735303f,-0.6518809665531226649193f,-0.5410207144441225857179f, \
-0.6415487649665978509006f,-0.9086003711350160161331f,-0.6165709440100644034288f, \
-0.5877295308593559752808f,-0.9208050182698661600966f,-0.0048324714164703318209f, \
-0.5674999297524496721934f,-0.1029242691026374945107f,-0.5491640506289516832084f, \
-0.0053183908272447745144f,-0.0180166547854653871785f,-0.8584065847628071788122f, \
-0.8876649204332747178370f,-0.5558116272697392057367f,-0.3452541277977640987729f, \
-0.9592322323801306671598f,-0.7535283497855133072463f,-0.7161931212080890896132f, \
-0.4651350655885536089507f,-0.4452798781006889750067f,-0.8627422069241995616906f, \
-0.4680940627922438035391f,-0.8526687741435754475106f,-0.2176103156742132949120f, \
-0.5122870446551318623918f,-0.9165631260315680872708f,-0.4375389900682862820425f, \
-0.4390596706521518455268f,-0.0877388848995636905226f,-0.6201939230056620067089f, \
-0.4244909451374946907087f,-0.5765081340409458077190f,-0.1546339715387441970940f, \
-0.8412371149638495637646f,-0.6152054338449556292190f,-0.7055085618375696032700f, \
-1.0060843012853948330587f,-0.8572003556218193986993f,-0.7684942188683597796839f, \
-0.0484327267220403465120f,-0.7613094946055299905296f,-0.7914662562103550458303f, \
-0.5959529832580606756309f,-0.7135015962341314521566f,-0.7642115760119819745100f, \
-0.7454508488281011979737f,-0.8264682151161963918895f,-0.5472791982347332551129f, \
-0.5406217977943502672744f,-0.3063151633155380415552f,-0.7796913689590335705404f, \
-0.1929181474134157303624f,-0.3430522750956541133682f,-0.4911328183727812768389f, \
-0.459568916168811014700f,-0.6685113226304408851064f,-0.6625697799772538587604f, \
-0.5798078060087921148380f,-0.8360708027394485597483f,-0.5502607336825936501512f, \
-0.1862858035907569154155f,-0.6223700777366898417853f,-0.6503554622010890851058f, \
-0.6214803763548166770647f,-0.658644048866955045263f,-0.6789244719569749175747f, \
-0.4960847336430311282918f,-0.7793968717468962026373f,-0.6535755489490102654315f, \
-0.1013611882342874415119f,-0.4101097128485187148783f,-0.4317360856761057741338f, \
-0.1858046514491050738016f,-0.5108140928015871828904f,-0.7329583102689192219970f, \
-0.5572655332532194805140f,-0.2414852833474282756132f,-0.7396265276752447270781f, \
-0.0588783609986792688673f,-0.2846992688951475170001f,-0.4723177842872927079121f, \
-0.1037246805315373693324f,-0.1794574611552203768916f,-0.0652808430937008854489f, \
-0.0773039499491101622652f,-0.7330187724544895422341f,-0.7392992415079050472215f,\
-0.4133533124652354895368f,-0.5506738102468112794341f,-0.5328074192235940920170f, \
-1.0038415897821586497685f,-0.7848345170731062525604f,-0.5565211946593774383629f, \
-0.8394668443345630892694f,-0.3316478088740031915371f,-0.6174546571080481438543f, \
-0.9359141759808927707454f,-0.3379222154458279558931f,-0.8818086263290126902703f, \
-0.8163896696778171202524f,-0.4448261056193882900800f,-0.5818126677407939872921f, \
-0.6497328441864358428148f,-0.4773967451595543809439f,-0.9219910445529124753961f, \
-0.7866824847635498496601f,-0.5256445971902782288154f,-0.5682526122395586964942f, \
-0.1069466527081457118964f,-0.7916702346016932789752f,-0.4433240253515259299277f, \
-0.7277712730096503879196f,-0.508130072062960125301f,-0.1336083189147964367383f,\
-0.1070544087071799849165f,-0.4749428955148710107537f,-0.4653576600823912667870f, \
-0.9868535311953914312966f,-0.3500843154048065564155f,-0.9103124176740465811619f, \
-0.7691355099915161419588f,-0.1137367567447675059666f,-0.3166772504537387900037f, \
-0.6397920481545310567029f,-0.7602207727265776204817f,-1.0393654015282784985885f, \
-0.9191682984673771317219f,-0.4105629424946563021948f,-0.7199249389558314282667f, \
-0.8184995123883722634162f,-0.8831578283865785250484f,-0.9231074927684407294137f, \
-0.4607753273118053716217f,-0.2299250742000491787298f,-0.9489247717923485758718f, \
-0.1680978688129062259549f,-0.6812321574150533853853f,-0.3838159223290327215494f, \
-0.1497969931648169827909f,-0.9112200478501172318246f,-0.4905472078299850102745f, \
-0.4982920949193456183757f,-0.2703771635876200951643f,-0.501441786599973071681f,\
-0.6091306446866900925485f,-0.7751834725402599879374f,-0.1702436202720564450974f, \
-0.4245933471268953929290f,-0.3901971933403464709578f,-0.0432410994613097177108f, \
-0.1052903868471218307157f,-0.1137136398834104750177f}
#define InRD {0.9181839306838810443878,0.0884356433525681495667,0.4926414485089480876923, \
0.8834870792925357818604,0.6802056566812098026276,0.0268530314788222312927, \
0.7203164598904550075531,0.4598560053855180740356,0.4730282914824783802032, \
0.0919386046007275581360,0.7707213866524398326874,0.2658544182777404785156, \
0.0074534364975988864899,0.9752697972580790519714,0.7235199823044240474701, \
0.5191026907414197921753,0.6986512844450771808624,0.0405965903773903846741, \
0.1825077752582728862762,0.3346745036542415618896,0.7407455802895128726959, \
0.2895397534593939781189,0.1539079672656953334808,0.2327872756868600845337, \
0.249757957179099321365,0.1534609617665410041809,0.8524017068557441234589, \
0.1445394679903984069824,0.5686616473831236362457,0.3302547885105013847351, \
0.2786427377723157405853,0.8844447638839483261108,0.3282945682294666767120, \
0.3848125720396637916565,0.9120064224116504192352,0.5585131235420703887939, \
0.3578817830421030521393,0.3319081580266356468201,0.3623231402598321437836, \
0.8766287136822938919067,0.0389173370786011219025,0.9202555166557431221008, \
0.3243460613302886486053,0.8379747122526168823242,0.1961554684676229953766, \
0.836488234810531139374,0.6787032946012914180756,0.7582549881190061569214, \
0.1194611941464245319366,0.5478108832612633705139,0.0830844114534556865692, \
0.1074626557528972625732,0.8102702707983553409576,0.0020722588524222373962, \
0.8974113441072404384613,0.1269455049186944961548,0.0464085307903587818146, \
0.9040105016902089118958,0.7867436590604484081268,0.6945183053612709045410, \
0.3590205931104719638824,0.7864200873300433158875,0.8456682055257260799408, \
0.4063719864934682846069,0.5153579493053257465363,0.5949906939640641212463, \
0.5879231388680636882782,0.3445296920835971832275,0.6011764244176447391510, \
0.0055679446086287498474,0.6450063190422952175140,0.4985997099429368972778, \
0.2964930129237473011017,0.1925860242918133735657,0.5175180840305984020233, \
0.3105752766132354736328,0.4384520896710455417633,0.2674221722409129142761, \
0.2229883982799947261810,0.3114312570542097091675,0.465050995815545320511, \
0.1054230490699410438538,0.1839383761398494243622,0.3182676993310451507568, \
0.8334749997593462467194,0.7803529789671301841736,0.1999261802993714809418, \
0.1607502643018960952759,0.0067916330881416797638,0.3250140668824315071106, \
0.8473272952251136302948,0.4055975303053855895996,0.1027544015087187290192, \
0.0367881907150149345398,0.1505991755984723567963,0.0478651728481054306030, \
0.7984658707864582538605,0.0468508685007691383362,0.8687802697531878948212, \
0.6377770192921161651611,0.5846501276828348636627,0.3718070005998015403748, \
0.2409734181128442287445,0.8118529785424470901489,0.9632846158929169178009, \
0.1664984868839383125305,0.5345636266283690929413,0.6970838457345962524414, \
0.6823413469828665256500,0.3967337189242243766785,0.2399202152155339717865, \
0.1569029819220304489136,0.6013874863274395465851,0.6506889471784234046936, \
0.2553333411924540996552,0.3477048687636852264404,0.2817953140474855899811, \
0.3077315231785178184509,0.9059348977170884609222,0.5546605382114648818970, \
0.8953115609474480152130,0.7834150167182087898254,0.1403537872247397899628, \
0.7755798771977424621582,0.5447361194528639316559,0.0693962080404162406921, \
0.7488555698655545711517,0.0215708073228597640991,0.5904601295478641986847, \
0.2870239550247788429260,0.9467164869420230388641,0.8032453395426273345947, \
0.0766134397126734256744,0.4733499353751540184021,0.1665818593464791774750, \
0.7712225038558244705200,0.8505714428611099720001,0.3183112638071179389954, \
0.4035588609986007213593,0.9796781539916992187500,0.4695712872780859470367, \
0.0718349842354655265808,0.9567936672829091548920,0.7416916470974683761597, \
0.4881874625571072101593,0.3396144369617104530334,0.9112829784862697124481, \
0.5451393984258174896240,0.2204167605377733707428,0.9863075008615851402283, \
0.2036699182353913784027,0.9978853110224008560181,0.5701226112432777881622, \
0.8649067105725407600403,0.6157743069343268871307,0.2710180804133415222168, \
0.0235887938179075717926,0.5910312486812472343445,0.5396073102019727230072, \
0.0088853742927312850952,0.3979325224645435810089,0.0808908129110932350159, \
0.8576204623095691204071,0.1746748872101306915283,0.4391269073821604251862, \
0.0716713583096861839294,0.7819390646182000637054,0.8002922702580690383911, \
0.8633827907033264636993,0.3430927144363522529602,0.9963299590162932872772, \
0.1092859357595443725586,0.9356399574317038059235,0.8588880775496363639832, \
0.9446536763571202754974,0.9815687369555234909058,0.1789177213795483112335, \
0.5469553777948021888733,0.6095509598962962627411,0.2286865226924419403076, \
0.3082748861052095890045,0.9369305213913321495056,0.6251136637292802333832, \
0.6483835671097040176392,0.9831290808506309986115,0.3739325078204274177551, \
0.0672900262288749217987,0.327214874327182769775,0.4716854714788496494293, \
0.0272304220125079154968,0.7657743184827268123627,0.1599553581327199935913, \
0.8212248464114964008331,0.4125823015347123146057,0.4811308677308261394501, \
0.0545558966696262359619,0.6280010775662958621979,0.6469958787783980369568, \
0.7909024558030068874359,0.7913962621241807937622}
#define InID {0.0004979562945663928986,0.1546611981466412544250,0.0284530925564467906952, \
0.0055849254131317138672,0.8097954043187201023102,0.0428051082417368888855, \
0.1182951643131673336029,0.2610557358711957931519,0.8207950596697628498077, \
0.8662176290526986122131,0.6516509572975337505341,0.6852114759385585784912, \
0.7980552376247942447662,0.9992001941427588462830,0.0459985560737550258636, \
0.1328642908483743667603,0.1799852666445076465607,0.3336857678368687629700, \
0.1323521169833838939667,0.3482229933142662048340,0.4151491993106901645660, \
0.5222808374091982841492,0.0140265165828168392181,0.0936772432178258895874, \
0.554428898263722658157,0.4849792802706360816956,0.5406363750807940959930, \
0.7141286022961139678955,0.1927964971400797367096,0.3982981061562895774841, \
0.2410794547758996486664,0.1056184638291597366333,0.3544462365098297595978, \
0.8855850743129849433899,0.0592544334940612316132,0.5570028573274612426758, \
0.4150356748141348361969,0.6272481856867671012878,0.7362630530260503292084, \
0.4334241282194852828979,0.6547862743027508258820,0.1096570501103997230530, \
0.1828466425649821758270,0.1703294925391674041748,0.5361933619715273380280, \
0.7314661284908652305603,0.6858070171438157558441,0.5467864666134119033813, \
0.3000954654999077320099,0.9861098499968647956848,0.2921617510728538036346, \
0.7068451717495918273926,0.9738530241884291172028,0.9392196042463183403015, \
0.2147838263772428035736,0.8976975139230489730835,0.3853864748962223529816, \
0.7197126084938645362854,0.6032756562344729900360,0.3933832384645938873291, \
0.2768237129785120487213,0.2433026498183608055115,0.5238274834118783473969, \
0.5727928597480058670044,0.1115069282241165637970,0.8871827023103833198547, \
0.4918101537041366100311,0.620717465877532958984,0.6681088157929480075836, \
0.3346294192597270011902,0.4008522643707692623138,0.8206953983753919601440, \
0.0156081621535122394562,0.3082795003429055213928,0.1921516875736415386200, \
0.9084058068692684173584,0.9628748060204088687897,0.4108279338106513023376, \
0.1077714688144624233246,0.4543590787798166275024,0.5766139742918312549591, \
0.7918981136754155158997,0.8716701003722846508026,0.7446341440081596374512, \
0.8614199929870665073395,0.8598338318988680839539,0.6422161697410047054291, \
0.1284126546233892440796,0.1956893731839954853058,0.7571631455793976783752, \
0.0799373830668628215790,0.3010600395500659942627,0.61714327195659279823, \
0.8184841191396117210388,0.3742539635859429836273,0.4915034342557191848755, \
0.5517093283124268054962,0.7295224415138363838196,0.5729464250616729259491, \
0.0226564854383468627930,0.0795128741301596164703,0.6061109183356165885925, \
0.0581077202223241329193,0.2136410307139158248901,0.3317275200970470905304, \
0.7118408391252160072327,0.5123297641985118389130,0.0925556533038616180420, \
0.1120351166464388370514,0.0331352194771170616150,0.2188743329606950283051, \
0.8885411117225885391235,0.3364450898952782154083,0.4304939182475209236145, \
0.0395783367566764354706,0.7718926444649696350098,0.3852231525816023349762, \
0.584660629741847515106,0.9142434685491025447845,0.8109691496938467025757, \
0.9606793900020420551300,0.4564617509022355079651,0.2252602274529635906219, \
0.6146492399275302886963,0.5445657209493219852448,0.4790671234950423240662, \
0.8712163171730935573578,0.6290841717272996902466,0.0488327336497604846954, \
0.2014226512983441352844,0.3932394194416701793671,0.5574976503849029541016, \
0.7534958967007696628571,0.6016047922894358634949,0.9978243424557149410248, \
0.871782509610056877136,0.1253611450083553791046,0.7888469258323311805725, \
0.8198945443145930767059,0.8846442662179470062256,0.6113598407246172428131, \
0.3129875948652625083923,0.2698480314575135707855,0.3510415498167276382446, \
0.0002431091852486133575,0.8000906230881810188293,0.8083376321010291576385, \
0.0676734074950218200684,0.4463855498470366001129,0.1329871071502566337585, \
0.9925356446765363216400,0.4392634835094213485718,0.7494483222253620624542, \
0.8954892838373780250549,0.1376328612677752971649,0.4803910739719867706299, \
0.9836516068316996097565,0.2990262722596526145935,0.4373219660483300685883, \
0.2216190565377473831177,0.0704064411111176013947,0.3104516910389065742493, \
0.8870153087191283702850,0.9886686950922012329102,0.3880559303797781467438, \
0.1997731504961848258972,0.8535470529459416866302,0.5233913194388151168823, \
0.0124758337624371051788,0.2265536198392510414124,0.6351096997968852519989, \
0.4152868799865245819092,0.6822845251299440860748,0.6837346693500876426697, \
0.8551749861799180507660,0.8123193774372339248657,0.0824123290367424488068, \
0.0176315875723958015442,0.0341491582803428173065,0.8797791674733161926270, \
0.5397802316583693027496,0.2428503734990954399109,0.1825126199983060359955, \
0.9759421404451131820679,0.7248379667289555072784,0.3708766037598252296448, \
0.7591939563862979412079,0.0132757760584354400635,0.4527114764787256717682, \
0.0710861748084425926208,0.8389283320866525173187,0.9739420730620622634888, \
0.1777097475714981555939,0.2829279201105237007141,0.8323502647690474987030, \
0.0483473539352416992188,0.2749410220421850681305,0.9980281023308634757996, \
0.6025707735680043697357,0.3654889445751905441284}
#define ResRD {0.4073265521222889096187,1.4832960157658940936187,1.0559760538030802390352, \
0.4876757408319799536,1.0503603238676473274893,1.543964660923583975816, \
0.7807960353449081569721,1.113475122068019684818,1.2074148700721019089599, \
1.5013200231227292746894,0.9297840505433454527662,1.3514532021448848464473, \
1.5649706537079166590587,0.9184476769025181619455,0.7642136963785024494911, \
1.0321272581534788326252,0.8249731824697179582984,1.5322804352205618982907, \
1.3889179161647142723979,1.2511777469647082927651,0.8631362880453896657684, \
1.3132001390852299227419,1.4162898618562522745634,1.336955652419456130886, \
1.3518798690760625014207,1.432530814961507692473,0.8166991767829372417253, \
1.4531763459288651318957,0.9836350291388685773697,1.2611871109235879284682, \
1.2970941054870110953345,0.5247972514595955484396,1.2580817851890182534902, \
1.284150657350121349509,0.4431164578699607337064,1.0790628231962844374436, \
1.2369697766373111136318,1.2891801931155641991467,1.279426005626910445301, \
0.7411469003274002709247,1.5382371539791293013621,0.4648284998100537523946, \
1.2466755478200817197632,0.6344745057664578080647,1.3976472343104680007286, \
0.9101343728052767589887,1.0145238645542766775520,0.8998398574208711364619, \
1.4561881086142904884184,1.18618251793282958317,1.4909812525527503801470, \
1.483042965312622918361,1.0101711671842434903112,1.5692858337560215975515, \
0.581296448133323040430,1.4763786358343300442186,1.5274840435675274274985, \
0.8570040265906480048130,0.8982361671454072160614,0.9010874927564332947938, \
1.2192362807008756409033,0.7383467259694986850604,0.8144931489593250084624, \
1.2166243834118397604271,1.03436100179767165308,1.131906113417643577890, \
1.0351962467792186206594,1.2775309074990219837531,1.071918673883956119042, \
1.565516150270076733975,0.9534817223618026194032,1.18808795707930903163, \
1.2698193301194886650762,1.3859852741821954147383,1.0412417743580970608264, \
1.3416868735639895238165,1.2575402806037097036551,1.3220218864013655313272, \
1.3473014979095856435976,1.285468609148218810390,1.1658747858778166772709, \
1.488164159422029397817,1.4322756049582612281057,1.3158102253315304697168, \
0.9591789810942366045765,0.9946060566652682455313,1.4024848311652073906686, \
1.4107060249666192319751,1.5641310708030540244096,1.3120464909736666569984, \
0.5765266085251754546448,1.174948768778458774165,1.4833345055395814604537, \
1.542328840440976067683,1.4294563291509121416567,1.5278339217974101771347, \
0.8672708709861330911295,1.5329472698613195724704,0.8183477500293765416473, \
0.8795454275343114192154,0.9497631085851768739658,1.2520159281840994580648, \
1.3278713297298554429915,0.6921693745176561440857,0.5940515258646017482391, \
1.4351615904003474089023,1.0896179081737702443178,0.8073262505844599479232, \
0.8303525589696477693380,1.1631217540254512599063,1.3345425852020198487224, \
1.4535942378139874442411,0.9795882485013941431973,0.9572655323242533764727, \
1.3128248243665050498663,1.2961023348938622845594,1.3059941497461620141252, \
1.304483982989253165741,0.9305437394849996879387,1.1438076057366068916110, \
0.9529804506540070496712,0.8395036014732552009932,1.4335056151860767759132, \
0.9118181357873784698143,1.088227104950570067743,1.5081933427510285650186, \
1.0197527081918582592124,1.5525377607896333476134,0.9404998007389445691118, \
1.286060244811547681465,0.6524446466111782916286,0.8656706311155134558888, \
1.5096117736353744653854,1.1637012525123178185993,1.4530145530183353752562, \
1.0046068631631419609818,0.5919009089776723353538,1.3213581010685828687201, \
1.2600188980179465314535,0.8740394919467842083094,1.1689296619753437589395, \
1.5022014467298512307991,0.5528837279866596343680,0.8359949109724567062329, \
1.0607846432300507277802,1.3062568171740265299263,0.8879559287204453754683, \
0.9963420783593853746751,1.3688496242545662440193,0.3803570908643706949270, \
1.4264926442838912201694,0.6382023556059207569646,1.117517041236663288828, \
0.9501387596985741978983,0.9188351614160777947049,1.3254743353137110606355, \
1.55398001104990246546,0.9810746826810110565731,1.0669910119329548692235, \
1.5621213392572059763808,1.162804162098360238886,1.4934861287145768660167, \
0.9519686104540553417408,1.4467374415079707894449,1.154639180917391483305, \
1.500462431806032004289,0.9915094174043252994721,0.8535439676775620210236, \
0.5293817691790781987393,1.23068211775509039896,0.7526195369457671091595, \
1.4697720678086412249286,0.8182121412746224953239,0.8746692343808056824273, \
0.8844573970963010012269,0.8439197222579799539943,1.391544468064010775521, \
0.9922180869468192332405,0.9160137371548995322001,1.3993728411492449836828, \
1.2985217508033519706601,0.5536816066461542895638,0.9157598470345392760450, \
1.1161566883090805468726,0.8048708844349877766788,1.2156607775224024248217, \
1.5172042703120385276350,1.2374758085060872936367,1.1351487844726630971337, \
1.5436311555741579759626,0.9980288444492946275943,1.4563247763642750420843, \
0.6617790067192217406955,1.1654713730545154248830,1.2035174317997594517493, \
1.5162772650111728811595,0.9344765112644882742998,1.1223294698972574590101, \
0.8945516347671441659273,0.7901547616106909810441}
#define ResID {-0.0012569697886744767793,-0.1546381133029076926366,-0.0326845596217153130936, \
-0.0119187043920920034135,-0.8334668693395566041460,-0.0428074462389216731095, \
-0.1672885154101033944318,-0.2869984863074300229790,-0.7925278559645111409182, \
-0.7851274769100758943452,-0.7428250726131904180249,-0.6543302407510473983621, \
-0.7311595163178985501418,-1.052203053002093824375,-0.0664259655312470775890, \
-0.1541712629474439599786,-0.2426466544194012253666,-0.3280193987403173250250, \
-0.1341688909762420167660,-0.3590358673724926563686,-0.5222636224036150132122, \
-0.5167890418406643204818,-0.0141951437273657391641,-0.0961499124903888030547, \
-0.5411789866531571124852,-0.4719374206382114245173,-0.6865145475966729637918, \
-0.6682412786135066840032,-0.229561178131867382746,-0.4068630429518135804834, \
-0.2478546467124292662643,-0.2092687177409224830171,-0.3643943961998056257912, \
-0.8260533990387732838911,-0.1377643146197947143783,-0.5959599853289488935459, \
-0.4262600844346774997540,-0.6137130366455740837495,-0.7080093721711945287112, \
-0.6044893440702200360093,-0.6155234120386735563457,-0.2422467665254410262854, \
-0.1917136851747310299920,-0.2835381480340813942220,-0.5205087419896101685879, \
-0.8283554785369232620340,-0.7385639097367507899250,-0.6511255066138333935655, \
-0.2976620683491659202780,-0.9257955504050334738508,-0.2890528438121037768660, \
-0.6604934892243505828446,-0.9834822614680237551354,-0.8377366271338905212573, \
-0.3818062735980304323036,-0.8101402379111779517018,-0.3767706089539061276028, \
-0.8471279280465069394523,-0.7100416511121218077207,-0.4827879396812622680990, \
-0.2907446603933081519244,-0.3540413099584073797210,-0.6691029908570297335402, \
-0.5779752710357292100340,-0.1293680641651104301637,-0.8672105047323137583248, \
-0.5445780680276932628203,-0.6098830976698420558435,-0.701796561463252421831, \
-0.3286839097690721356315,-0.4736684460520745321155,-0.7974492297316398969897, \
-0.0163420882574338011128,-0.3086940489965586675858,-0.2208475495159677448598, \
-0.8330345833509705810727,-0.8899247395553587791639,-0.4121122816452804649145, \
-0.110296470108896760287,-0.4573875737589336853972,-0.5921314598231492976055, \
-0.7284533656063938433789,-0.7940022333816690869313,-0.7086861369245996966626, \
-0.9177754728271111384075,-0.8992125494626673765097,-0.6124156802640610131050, \
-0.1297119059766182191940,-0.1944657181402436596507,-0.7195246660784752057438, \
-0.1461225286840270864985,-0.3207633116621479985042,-0.5854835047639634915129, \
-0.7472936554211552229177,-0.3695542509299474809303,-0.4740067448468703315001, \
-0.6718044057588442585782,-0.67710691385219745619,-0.7207858066458165957613, \
-0.0294026163397106028718,-0.0976133299331403969656,-0.6013612638349056238596, \
-0.0598297565651504936746,-0.328794773496815184721,-0.5625239033097394480976, \
-0.6677071141299576462202,-0.5498312284204850408642,-0.1277672590472646030335, \
-0.1511975528780685473773,-0.0360853980890413067462,-0.2232684445667622585852, \
-0.8049065446736692885921,-0.3948819631358797543896,-0.5048059213328937033793, \
-0.0409214035081632079849,-0.7341976462547471493636,-0.3892323418939396262317, \
-0.5739837580671862671267,-0.9770097106672435138819,-0.8021342946497018733254, \
-1.0021601470891579044320,-0.5801678547205166847078,-0.2254843767325802050827, \
-0.7149457311090813282917,-0.5814477978791194878738,-0.4632588121589609753137, \
-0.8972503262100923748790,-0.5936926452425980160754,-0.0604108143246592510511, \
-0.2083620749723606169201,-0.6092960412140594472774,-0.6787459939901434591292, \
-0.6970693351773428192431,-0.6155344865687581989988,-0.8847535831035618913987, \
-0.9045009940161035100203,-0.2228370896879496854126,-0.7435945044006587734131, \
-0.7797072997435431362945,-0.9858551830709869623348,-0.6231594490146994402835, \
-0.3087944685075739159608,-0.4935703580252177591348,-0.4570457045425700415286, \
-0.0002785589239395412880,-0.7550970319205865255441,-0.9107367125371321758820, \
-0.0805255675456537367563,-0.4411921852011919109593,-0.3509629581295168887500, \
-0.8834651688371163436031,-0.6829765945613543998149,-0.7587154857028519661100, \
-0.9508788895131682350481,-0.1722922072289033157411,-0.4769308753189193672561, \
-0.8698653140140508721601,-0.3524550030910831299735,-0.48064598279368742073, \
-0.2198520225955942486440,-0.0766272000705114642027,-0.3065575707631173485446, \
-0.9428944463643879059234,-0.8787732160663290770231,-0.4124717822835545222304, \
-0.198953189056428669801,-0.8954090767834280706339,-0.6481614554957403351310, \
-0.0247021173339000768565,-0.2380648741688522473936,-0.8303628800121001241052, \
-0.4061558941427557689607,-0.8344614350167003369307,-0.8022035151889936877012, \
-0.9540346088196560714323,-0.9416233317955250425868,-0.0836566823356919425647, \
-0.0210575991644249005397,-0.0430401703581563405132,-0.8035548300562509460576, \
-0.5345951582358715592491,-0.4468307121957418859282,-0.2281623925724436396933, \
-0.9410916791444350337770,-0.8853872018362433093941,-0.3859095350986695427409, \
-0.7013552814699581805513,-0.0140485558911140305527,-0.4806326207619357471224, \
-0.0710526121402196841892,-0.8801311527599792183807,-0.8674163434334025701844, \
-0.2852979580229001999037,-0.3032063540671979806618,-0.8027805094234632399264, \
-0.0484003958010784038346,-0.3355136589916887235319,-0.9554164532781582730436, \
-0.7111271555138466426982,-0.4940883791858934337426}
void cacossTest(void){
int i=0;
float tInR[]=InRF;
float tInI[]=InIF;
float tResR[]=ResRF;
float tResI[]=ResIF;
floatComplex tIn[200];
floatComplex tRes[200];
floatComplex out[200];
for (i=0;i<200;i++){
tIn[i]=FloatComplex(tInR[i],tInI[i]);
tRes[i]=FloatComplex(tResR[i],tResI[i]);
out[i]=cacoss(tIn[i]);
}
for (i=0;i<200;i++){
assert ( ( fabs(creals(out[i]) - creals(tRes[i])) / fabs(creals(out[i])) ) < 1e-6);
assert ( ( fabs(cimags(out[i]) - cimags(tRes[i])) / fabs(cimags(out[i])) ) < 1e-6);
}
}
void zacossTest(void){
int i=0;
double tInR[]=InRD;
double tInI[]=InID;
double tResR[]=ResRD;
double tResI[]=ResID;
doubleComplex tIn[200];
doubleComplex tRes[200];
doubleComplex out[200];
for (i=0;i<200;i++){
tIn[i]=DoubleComplex(tInR[i],tInI[i]);
tRes[i]=DoubleComplex(tResR[i],tResI[i]);
out[i]=zacoss(tIn[i]);
}
for (i=0;i<200;i++){
assert ( ( fabs(zreals(out[i]) - zreals(tRes[i])) / fabs(zreals(out[i])) ) < 3e-15);
assert ( ( fabs(zimags(out[i]) - zimags(tRes[i])) / fabs(zimags(out[i])) ) < 3e-15);
}
out[0]=zacoss(DoubleComplex(0.2,0.1));
printf ("%1.20f + %1.20f *i\n",zreals(out[0]),zimags(out[0]));
assert ( ( fabs(zreals(out[0]) - 1.3704927556955963652285) / fabs(zreals(out[0])) ) < 3e-16);
assert ( ( fabs(zimags(out[0]) - (- 0.1018639159801242727310)) / fabs(zimags(out[0])) ) < 3e-16);
}
void cacosaTest(void){
int i=0;
float tInR[]=InRF;
float tInI[]=InIF;
float tResR[]=ResRF;
float tResI[]=ResIF;
floatComplex tIn[200];
floatComplex tRes[200];
floatComplex out[200];
for (i=0;i<200;i++){
tIn[i]=FloatComplex(tInR[i],tInI[i]);
tRes[i]=FloatComplex(tResR[i],tResI[i]);
}
cacosa(tIn,200,out);
for (i=0;i<200;i++){
assert ( ( fabs(creals(out[i]) - creals(tRes[i])) / fabs(creals(out[i])) ) < 1e-6);
assert ( ( fabs(cimags(out[i]) - cimags(tRes[i])) / fabs(cimags(out[i])) ) < 1e-6);
}
}
void zacosaTest(void){
int i=0;
double tInR[]=InRD;
double tInI[]=InID;
double tResR[]=ResRD;
double tResI[]=ResID;
doubleComplex tIn[200];
doubleComplex tRes[200];
doubleComplex out[200];
for (i=0;i<200;i++){
tIn[i]=DoubleComplex(tInR[i],tInI[i]);
tRes[i]=DoubleComplex(tResR[i],tResI[i]);
}
zacosa(tIn,200,out);
for (i=0;i<200;i++){
assert ( ( fabs(zreals(out[i]) - zreals(tRes[i])) / fabs(zreals(out[i])) ) < 3e-15);
assert ( ( fabs(zimags(out[i]) - zimags(tRes[i])) / fabs(zimags(out[i])) ) < 3e-15);
}
}
int testAcos(void) {
printf("\n>>>> Complex ArcCosine Tests\n");
cacossTest();
zacossTest();
cacosaTest();
zacosaTest();
return 0;
}
int main(void) {
assert(testAcos() == 0);
return 0;
}
|