summaryrefslogtreecommitdiff
path: root/src/c/operations/multiplication/testMultiplication.c
blob: ac02215718daafbdbf8b5c9abe9d299e1769a08f (plain)
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
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
/*
 *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 *  Copyright (C) 2006-2008 - INRIA - Bruno JOFRET
 *
 *  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 <stdlib.h>
#include <stdio.h>
#include <assert.h>
#include <math.h>
#include "multiplication.h"


#define FP1 {0.3874644362367689609528f,0.3987790448591113090515f,0.9963990836404263973236f,\
0.9320784267038106918335f,0.0681476672179996967316f,0.7187465364113450050354f,\
0.6592897172085940837860f,0.437819693237543106079f,0.9570061699487268924713f,\
0.3977778619155287742615f,0.5414962074719369411469f,0.1475485283881425857544f,\
0.9197258842177689075470f,0.4185347454622387886047f,0.9044831502251327037811f,\
0.3202747702598571777344f,0.5748232551850378513336f,0.7572625903412699699402f,\
0.3254728927277028560638f,0.5012555103749036788940f,0.2686208193190395832062f,\
0.1170668462291359901428f,0.3667570571415126324f,0.8753886483609676361084f,\
0.5248321653343737125397f,0.7686112513765692710876f,0.8289924389682710170746f,\
0.6499033216387033462524f,0.5625062701292335987091f,0.216987949796020984650f,\
0.932231280487030744553f,0.9350972101092338562012f,0.9760812097229063510895f,\
0.9135094834491610527039f,0.2684359191916882991791f,0.0918707158416509628296f,\
0.1712972451932728290558f,0.7311726594343781471252f,0.8692278112284839153290f,\
0.0148080177605152130127f,0.6507192836143076419830f,0.4225442921742796897888f,\
0.2326209298335015773773f,0.3195550013333559036255f,0.7426187139935791492462f,\
0.7788188206031918525696f,0.6524895387701690196991f,0.9032440632581710815430f,\
0.8669646182097494602203f,0.7087978003546595573425f,0.6945203407667577266693f,\
0.8467157911509275436401f,0.9322743569500744342804f,0.9565412709489464759827f,\
0.1623990009538829326630f,0.1272875182330608367920f,0.9570735306479036808014f,\
0.6764409979805350303650f,0.3979810453020036220551f,0.1108187530189752578735f,\
0.5097153154201805591583f,0.5844655903056263923645f,0.2591971340589225292206f,\
0.2918234840035438537598f,0.0603091740049421787262f,0.9043274922296404838562f,\
0.6194427101872861385345f,0.2503793593496084213257f,0.8385089416988193988800f,\
0.8273218506947159767151f,0.7322020228020846843719f,0.2945837415754795074463f,\
0.2909102872945368289948f,0.7045872574672102928162f,0.3046565256081521511078f,\
0.7573066372424364089966f,0.7318075490184128284454f,0.6905383663251996040344f,\
0.6240276503376662731171f,0.415990501642227172852f,0.2810599454678595066071f,\
0.0562203852459788322449f,0.5804039551876485347748f,0.0042469184845685958862f,\
0.6828171615488827228546f,0.8913354435935616493225f,0.9298026482574641704559f,\
0.2840001545846462249756f,0.0988543094135820865631f,0.4136908343061804771423f,\
0.6412154859863221645355f,0.6469275895506143569946f,0.4702662643976509571075f,\
0.6048191310837864875793f,0.6713890465907752513885f,0.7139470204710960388184f,\
0.5412713759578764438629f,0.3905201805755496025085f,0.0110893785022199153900f,\
0.9015008416026830673218f,0.1388745536096394062042f,0.0850749695673584938049f,\
0.3466010238043963909149f,0.4233870990574359893799f,0.8021397278644144535065f,\
0.3178813671693205833435f,0.1802104166708886623383f,0.6968874204903841018677f,\
0.3548216861672699451447f,0.1612617420032620429993f,0.7534236568026244640350f,\
0.6219418197870254516602f,0.5151072838343679904938f,0.6781924543902277946472f,\
0.6166686578653752803802f,0.7021203767508268356323f,0.1362160299904644489288f,\
0.6087052235379815101624f,0.1892316709272563457489f,0.4761417917907238006592f,\
0.1716100485064089298248f,0.4137103697285056114197f,0.1531781828962266445160f,\
0.2286888156086206436157f,0.9585634139366447925568f,0.3949919315055012702942f,\
0.0250081899575889110565f,0.4492705538868904113770f,0.91384086245670915f,\
0.1101246578618884086609f,0.7487958460114896297455f,0.0078816469758749008179f,\
0.2352358778007328510284f,0.8010628754273056983948f,0.6545634861104190349579f,\
0.5162083245813846588135f,0.7027181521989405155182f,0.0551512306556105613708f,\
0.6256400248967111110687f,0.8431313354521989822388f,0.1729404223151504993439f,\
0.4173073070123791694641f,0.8187537300400435924530f,0.2532757520675659179688f,\
0.8608546801842749118805f,0.1721261171624064445496f,0.7806093706749379634857f,\
0.1373576503247022628784f,0.0021877591498196125031f,0.0146564701572060585022f,\
0.3046997408382594585419f,0.8030776642262935638428f,0.9905262948013842105865f,\
0.8285992136225104331970f,0.8721015579067170619965f,0.2953114155679941177368f,\
0.5827610609121620655060f,0.2906773509457707405090f,0.020005736034363508224f,\
0.7143468186259269714355f,0.2666406803764402866364f,0.5199280334636569023132f,\
0.4817320345900952816010f,0.0009182598441839218140f,0.3841847111470997333527f,\
0.4906664276495575904846f,0.4419780815951526165009f,0.6567876525223255157471f,\
0.10470610717311501503f,0.4278714573010802268982f,0.7510527721606194972992f,\
0.3696223665028810501099f,0.8411930543370544910431f,0.9037434207275509834290f,\
0.441844041924923658371f,0.0109200328588485717773f,0.2038001813925802707672f,\
0.854183482937514781952f,0.3932710154913365840912f,0.9757302235811948776245f,\
0.0841991459019482135773f,0.2339450428262352943420f,0.483970529865473508835f,\
0.3329230062663555145264f,0.9645385951735079288483f,0.5292069753631949424744f,\
0.0799680328927934169769f,0.754754373803734779358f,0.0447635021992027759552f,\
0.8463187487795948982239f,0.2000828566960990428925f,0.6944785490632057189941f,\
0.2820438765920698642731f,0.7954674167558550834656f,0.2028178661130368709564f,\
0.7807571645826101303101f,0.9360628505237400531769f,0.8880164856091141700745f,\
0.3384834821335971355438f,0.8976153172552585601807f}

#define FP2 {0.4503413387574255466461f,0.7080971030518412590027f,0.2459910525940358638763f,\
0.5369079094380140304565f,0.2288442556746304035187f,0.8762242654338479042053f,\
0.8204974154941737651825f,0.1096532605588436126709f,0.3977028490044176578522f,\
0.0387893309816718101501f,0.4764164215885102748871f,0.5613568071275949478149f,\
0.9855364081449806690216f,0.2565485062077641487122f,0.0636831256560981273651f,\
0.4720427915453910827637f,0.3494783216156065464020f,0.4271033955737948417664f,\
0.8822676776908338069916f,0.18796317838132381439f,0.8610891629941761493683f,\
0.0103648686781525611877f,0.9999243463389575481415f,0.3546787090599536895752f,\
0.4418791518546640872955f,0.7364388024434447288513f,0.5289249173365533351898f,\
0.3544368315488100051880f,0.5421899897046387195587f,0.0146836983039975166321f,\
0.2055264669470489025116f,0.1165965050458908081055f,0.6571860709227621555328f,\
0.2626901743933558464050f,0.1159235103987157344818f,0.2698498796671628952026f,\
0.9737050686962902545929f,0.8739323327317833900452f,0.9124345253221690654755f,\
0.1049908511340618133545f,0.2417178959585726261139f,0.0428410014137625694275f,\
0.3636728501878678798676f,0.3169804904609918594360f,0.4641480413265526294708f,\
0.1660488517954945564270f,0.5824519577436149120331f,0.9950593486428260803223f,\
0.4988002800382673740387f,0.0385573906823992729187f,0.7751751034520566463470f,\
0.8296566363424062728882f,0.1661487598903477191925f,0.5635758275166153907776f,\
0.8564593489281833171844f,0.0048462785780429840088f,0.9567344621755182743073f,\
0.1947818165645003318787f,0.7727439603768289089203f,0.7450998444110155105591f,\
0.9319220376200973987579f,0.8297540741041302680969f,0.8786331820301711559296f,\
0.9850863516330718994141f,0.9117660173214972019196f,0.3733268706128001213074f,\
0.2097233845852315425873f,0.1312689464539289474487f,0.5437363986857235431671f,\
0.6896163979545235633850f,0.9956645886413753032684f,0.3840484581887722015381f,\
0.3460536063648760318756f,0.1614690115675330162048f,0.25720636313781142235f,\
0.5892038289457559585571f,0.3193828281946480274200f,0.5760813476517796516418f,\
0.8309780987910926342010f,0.0873794183135032653809f,0.2206377261318266391754f,\
0.5555423153564333915710f,0.6657536565326154232025f,0.5303691830486059188843f,\
0.0926435221917927265167f,0.2510469639673829078674f,0.7339503909461200237274f,\
0.1329477317631244659424f,0.1434094593860208988190f,0.5195322250947356224060f,\
0.4021125487051904201508f,0.3289982546120882034302f,0.5687606376595795154572f,\
0.3014845298603177070618f,0.6041290420107543468475f,0.3006873279809951782227f,\
0.4120792248286306858063f,0.4186693010851740837097f,0.6609355970285832881927f,\
0.3494365941733121871948f,0.0549050425179302692413f,0.5105323204770684242249f,\
0.0904512773267924785614f,0.5774413160979747772217f,0.4321455270983278751373f,\
0.3280229708179831504822f,0.2514993823133409023285f,0.8484858069568872451782f,\
0.5656450656242668628693f,0.1035893531516194343567f,0.1654627206735312938690f,\
0.4968057349324226379395f,0.5098637067712843418121f,0.2160952789708971977234f,\
0.3594232588075101375580f,0.7527473028749227523804f,0.3034152467735111713409f,\
0.8694091374054551124573f,0.0745361442677676677704f,0.3539733029901981353760f,\
0.0202146903611719608307f,0.0034146374091506004333f,0.6833881041966378688812f,\
0.3109660465270280838013f,0.5139850866980850696564f,0.1561934249475598335266f,\
0.6600902187637984752655f,0.2955771684646606445312f,0.9498737403191626071930f,\
0.4961295751854777336121f,0.9468550696037709712982f,0.6213743072003126144409f,\
0.7169277970679104328156f,0.7426859596744179725647f,0.0608082632534205913544f,\
0.2845346592366695404053f,0.8151792050339281558990f,0.1946024885401129722595f,\
0.7847843295894563198090f,0.0340354088693857192993f,0.3110890504904091358185f,\
0.5842662276700139045715f,0.7858569952659308910370f,0.9398910328745841979980f,\
0.9551012688316404819489f,0.9770033909007906913757f,0.0053538321517407894135f,\
0.4281874801963567733765f,0.5550557305105030536652f,0.4340432072058320045471f,\
0.1641052807681262493134f,0.2516632266342639923096f,0.1992107019759714603424f,\
0.65790366288274526596f,0.226678048726171255112f,0.3645872045308351516724f,\
0.9226246816106140613556f,0.3389491187408566474915f,0.1683428841643035411835f,\
0.1706836074590682983398f,0.9106476106680929660797f,0.4218698022887110710144f,\
0.8885267241857945919037f,0.1128535699099302291870f,0.8332714592106640338898f,\
0.0108331749215722084045f,0.6144992182962596416473f,0.0734437219798564910889f,\
0.4040901870466768741608f,0.1320571741089224815369f,0.6390436268411576747894f,\
0.5538116190582513809204f,0.7576190796680748462677f,0.0725553305819630622864f,\
0.7358620944432914257050f,0.1019380465149879455566f,0.7387234591878950595856f,\
0.5138037605211138725281f,0.0964652984403073787689f,0.9568361993879079818726f,\
0.6979067702777683734894f,0.1790800327435135841370f,0.1322964723221957683563f,\
0.3785077370703220367432f,0.8862080411054193973541f,0.2132239108905196189880f,\
0.9858398041687905788422f,0.6321957129985094070435f,0.0434587192721664905548f,\
0.0135699706152081489563f,0.0944632100872695446014f,0.0956843793392181396484f,\
0.2736488827504217624664f,0.7308020917698740959167f,0.6507454826496541500092f,\
0.4583958666771650314331f,0.8011528258211910724640f,0.1584798255935311317444f,\
0.3030378143303096294403f,0.4810337387025356292725f}

#define FRes {0.1744912529357576791433f,0.2823742864225169957315f,0.2451052593884412711400f,\
0.5004402795138161996746f,0.0155952021804655512061f,0.6297831559001532131248f,\
0.5409455090315361536213f,0.0480083569003692950394f,0.3806040803034145825201f,\
0.0154295371430231906262f,0.257977685467529749275f,0.0828273707923430219102f,\
0.9064233444099463188337f,0.1073744637443841548619f,0.0576003141096106049956f,\
0.1511833966150217811730f,0.2008882664476865365089f,0.3234294236757639939839f,\
0.2871542132181882922559f,0.0942175789112195266606f,0.231306476470241606513f,\
0.0012133824877304738923f,0.3667293106274266967226f,0.3104817157264057603250f,\
0.2319123920839998853616f,0.5660351495083181250223f,0.4384747572539204885089f,\
0.2303496741346691967234f,0.3049852688101639119900f,0.0031861855904077316173f,\
0.1915982014560227986166f,0.1090290665768997024898f,0.6414669751193333713246f,\
0.2399699655172445322826f,0.0311180340698064966665f,0.0247913016148056282451f,\
0.1667929958984009919387f,0.6389954278891879502211f,0.7931134653350897512070f,\
0.0015547063882847961258f,0.1572904960949201291776f,0.0181022206184156195241f,\
0.0845979165659015430734f,0.1012927010519100584629f,0.3446850215525631422331f,\
0.1293219709178812792949f,0.3800438092639132903194f,0.8987814492511753128312f,\
0.4324421943462926076762f,0.0273293937030998496107f,0.5383748770034290087594f,\
0.7024833752242779505437f,0.1548962282848262428381f,0.5390835383288474780272f,\
0.1390881426235499873645f,0.0006168707728651384725f,0.9156652296068464869094f,\
0.1317584063853521059162f,0.3075374491015804290228f,0.0825710356322612165636f,\
0.4750149353525452977642f,0.4849627047297689896865f,0.2277392026712919681497f,\
0.2874713311779031332804f,0.0549878553904352973536f,0.3376097526832130268915f,\
0.1299116217371263370950f,0.0328670347156327785632f,0.4559278322250933657145f,\
0.5705347146251601442302f,0.7290276258356205296707f,0.1131344317595426168799f,\
0.1006705540469166465511f,0.1137690080263093483914f,0.0783595969578743251072f,\
0.4462079703492781712626f,0.2337267646996942227489f,0.3978062726778792690396f,\
0.5185533104706666618355f,0.0363490080574402352198f,0.0620124272747637136916f,\
0.0312328029897817466276f,0.3864060554321692708690f,0.0022524346871346696830f,\
0.0632585868588908389887f,0.2237670569906841377961f,0.6824290171913035552009f,\
0.0377571763724054293432f,0.0141766430709802434412f,0.2149257196483875254067f,\
0.2578407933391972939319f,0.2128380478225575245244f,0.2674689404085963673197f,\
0.1823436113853212359182f,0.4056056215333987968741f,0.2146748219054467332612f,\
0.223046689026648065068f,0.1634988110612213274564f,0.0073293650010406562884f,\
0.3150173837340161653309f,0.0076249132705958379275f,0.0434335216277395089191f,\
0.0313505053258816626660f,0.2444812036986294678798f,0.3466410955044766373234f,\
0.1042723904265626388987f,0.0453228084791582885860f,0.5912990853328871088124f,\
0.2007031359569984296787f,0.0167049995422212521623f,0.1246635280743631640776f,\
0.3089842628645015354394f,0.2626345091206789272853f,0.1465541876274137622627f,\
0.2216450586144267098643f,0.5285192198927095574845f,0.0413300203540647725919f,\
0.5292138833303512424067f,0.0141045991242647154873f,0.1685414827318337249729f,\
0.0034690439934227570301f,0.0014126709050284813954f,0.1046801480137381917812f,\
0.0711144568747612698667f,0.4926872994178387865638f,0.0616951426084962062379f,\
0.0165076615799914921956f,0.1327941181924368052591f,0.868033438078243735347f,\
0.0546360997224647759740f,0.7090011428942235571782f,0.0048974529292317055262f,\
0.1686471396630155883400f,0.5949381503962772876903f,0.0398028687794790766996f,\
0.1468791597298964024532f,0.5728412246724432499434f,0.0107325667316315806477f,\
0.4909924875028962021339f,0.0286963197327067993936f,0.0537998717694305322867f,\
0.2438185660472551308242f,0.6434233461520417751700f,0.2380516082128716348620f,\
0.8222033973236569925902f,0.1681678001302578939757f,0.0041792515466696263798f,\
0.0588148261782265452391f,0.0012143282530841621129f,0.0063615413133502824242f,\
0.0500028365202378755061f,0.2021051162170970916243f,0.1973234385130417933851f,\
0.5451384577040119250313f,0.1976862794373486775790f,0.1076667634679787238783f,\
0.5376697382791472135111f,0.0985248319409957051818f,0.0033678233038544891365f,\
0.1219272919799819776543f,0.2428156984917200222895f,0.2193419366816712900992f,\
0.4280317866296952655780f,0.0001036289015210918596f,0.3201301548639712835076f,\
0.0053154752388706117197f,0.271595185644301739813f,0.0482369297516522660407f,\
0.0423107104325134431022f,0.0565034955330471419521f,0.4799554874706279394836f,\
0.20470116123310294620f,0.6373039076500160993177f,0.0655714026521615894749f,\
0.3251362821081638099230f,0.0011131668175105025043f,0.1505519749814473728922f,\
0.4388826857083177879204f,0.0379370058772945314973f,0.9336139987593442546299f,\
0.0587631539765752775040f,0.0418948859295049033657f,0.0640275938091060398127f,\
0.1260139337205268827979f,0.8547818589992876026074f,0.1128395809574832958644f,\
0.0788356698867948707532f,0.4771524794855955819983f,0.0019453644757141607628f,\
0.0114845205520388293774f,0.0189004689269446496391f,0.0664507489315135924102f,\
0.0771809917160177494377f,0.5813292520999571166840f,0.1319828101737011150085f,\
0.3578958571232515595284f,0.7499293978433335672307f,0.140732697763512853983f,\
0.1025732946126776817808f,0.4317832519759596809905f}

#define DP1 {0.3874644362367689609528,0.3987790448591113090515,0.9963990836404263973236,\
0.9320784267038106918335,0.0681476672179996967316,0.7187465364113450050354,\
0.6592897172085940837860,0.437819693237543106079,0.9570061699487268924713,\
0.3977778619155287742615,0.5414962074719369411469,0.1475485283881425857544,\
0.9197258842177689075470,0.4185347454622387886047,0.9044831502251327037811,\
0.3202747702598571777344,0.5748232551850378513336,0.7572625903412699699402,\
0.3254728927277028560638,0.5012555103749036788940,0.2686208193190395832062,\
0.1170668462291359901428,0.3667570571415126324,0.8753886483609676361084,\
0.5248321653343737125397,0.7686112513765692710876,0.8289924389682710170746,\
0.6499033216387033462524,0.5625062701292335987091,0.216987949796020984650,\
0.932231280487030744553,0.9350972101092338562012,0.9760812097229063510895,\
0.9135094834491610527039,0.2684359191916882991791,0.0918707158416509628296,\
0.1712972451932728290558,0.7311726594343781471252,0.8692278112284839153290,\
0.0148080177605152130127,0.6507192836143076419830,0.4225442921742796897888,\
0.2326209298335015773773,0.3195550013333559036255,0.7426187139935791492462,\
0.7788188206031918525696,0.6524895387701690196991,0.9032440632581710815430,\
0.8669646182097494602203,0.7087978003546595573425,0.6945203407667577266693,\
0.8467157911509275436401,0.9322743569500744342804,0.9565412709489464759827,\
0.1623990009538829326630,0.1272875182330608367920,0.9570735306479036808014,\
0.6764409979805350303650,0.3979810453020036220551,0.1108187530189752578735,\
0.5097153154201805591583,0.5844655903056263923645,0.2591971340589225292206,\
0.2918234840035438537598,0.0603091740049421787262,0.9043274922296404838562,\
0.6194427101872861385345,0.2503793593496084213257,0.8385089416988193988800,\
0.8273218506947159767151,0.7322020228020846843719,0.2945837415754795074463,\
0.2909102872945368289948,0.7045872574672102928162,0.3046565256081521511078,\
0.7573066372424364089966,0.7318075490184128284454,0.6905383663251996040344,\
0.6240276503376662731171,0.415990501642227172852,0.2810599454678595066071,\
0.0562203852459788322449,0.5804039551876485347748,0.0042469184845685958862,\
0.6828171615488827228546,0.8913354435935616493225,0.9298026482574641704559,\
0.2840001545846462249756,0.0988543094135820865631,0.4136908343061804771423,\
0.6412154859863221645355,0.6469275895506143569946,0.4702662643976509571075,\
0.6048191310837864875793,0.6713890465907752513885,0.7139470204710960388184,\
0.5412713759578764438629,0.3905201805755496025085,0.0110893785022199153900,\
0.9015008416026830673218,0.1388745536096394062042,0.0850749695673584938049,\
0.3466010238043963909149,0.4233870990574359893799,0.8021397278644144535065,\
0.3178813671693205833435,0.1802104166708886623383,0.6968874204903841018677,\
0.3548216861672699451447,0.1612617420032620429993,0.7534236568026244640350,\
0.6219418197870254516602,0.5151072838343679904938,0.6781924543902277946472,\
0.6166686578653752803802,0.7021203767508268356323,0.1362160299904644489288,\
0.6087052235379815101624,0.1892316709272563457489,0.4761417917907238006592,\
0.1716100485064089298248,0.4137103697285056114197,0.1531781828962266445160,\
0.2286888156086206436157,0.9585634139366447925568,0.3949919315055012702942,\
0.0250081899575889110565,0.4492705538868904113770,0.91384086245670915,\
0.1101246578618884086609,0.7487958460114896297455,0.0078816469758749008179,\
0.2352358778007328510284,0.8010628754273056983948,0.6545634861104190349579,\
0.5162083245813846588135,0.7027181521989405155182,0.0551512306556105613708,\
0.6256400248967111110687,0.8431313354521989822388,0.1729404223151504993439,\
0.4173073070123791694641,0.8187537300400435924530,0.2532757520675659179688,\
0.8608546801842749118805,0.1721261171624064445496,0.7806093706749379634857,\
0.1373576503247022628784,0.0021877591498196125031,0.0146564701572060585022,\
0.3046997408382594585419,0.8030776642262935638428,0.9905262948013842105865,\
0.8285992136225104331970,0.8721015579067170619965,0.2953114155679941177368,\
0.5827610609121620655060,0.2906773509457707405090,0.020005736034363508224,\
0.7143468186259269714355,0.2666406803764402866364,0.5199280334636569023132,\
0.4817320345900952816010,0.0009182598441839218140,0.3841847111470997333527,\
0.4906664276495575904846,0.4419780815951526165009,0.6567876525223255157471,\
0.10470610717311501503,0.4278714573010802268982,0.7510527721606194972992,\
0.3696223665028810501099,0.8411930543370544910431,0.9037434207275509834290,\
0.441844041924923658371,0.0109200328588485717773,0.2038001813925802707672,\
0.854183482937514781952,0.3932710154913365840912,0.9757302235811948776245,\
0.0841991459019482135773,0.2339450428262352943420,0.483970529865473508835,\
0.3329230062663555145264,0.9645385951735079288483,0.5292069753631949424744,\
0.0799680328927934169769,0.754754373803734779358,0.0447635021992027759552,\
0.8463187487795948982239,0.2000828566960990428925,0.6944785490632057189941,\
0.2820438765920698642731,0.7954674167558550834656,0.2028178661130368709564,\
0.7807571645826101303101,0.9360628505237400531769,0.8880164856091141700745,\
0.3384834821335971355438,0.8976153172552585601807}

#define DP2  {0.4503413387574255466461,0.7080971030518412590027,0.2459910525940358638763,\
0.5369079094380140304565,0.2288442556746304035187,0.8762242654338479042053,\
0.8204974154941737651825,0.1096532605588436126709,0.3977028490044176578522,\
0.0387893309816718101501,0.4764164215885102748871,0.5613568071275949478149,\
0.9855364081449806690216,0.2565485062077641487122,0.0636831256560981273651,\
0.4720427915453910827637,0.3494783216156065464020,0.4271033955737948417664,\
0.8822676776908338069916,0.18796317838132381439,0.8610891629941761493683,\
0.0103648686781525611877,0.9999243463389575481415,0.3546787090599536895752,\
0.4418791518546640872955,0.7364388024434447288513,0.5289249173365533351898,\
0.3544368315488100051880,0.5421899897046387195587,0.0146836983039975166321,\
0.2055264669470489025116,0.1165965050458908081055,0.6571860709227621555328,\
0.2626901743933558464050,0.1159235103987157344818,0.2698498796671628952026,\
0.9737050686962902545929,0.8739323327317833900452,0.9124345253221690654755,\
0.1049908511340618133545,0.2417178959585726261139,0.0428410014137625694275,\
0.3636728501878678798676,0.3169804904609918594360,0.4641480413265526294708,\
0.1660488517954945564270,0.5824519577436149120331,0.9950593486428260803223,\
0.4988002800382673740387,0.0385573906823992729187,0.7751751034520566463470,\
0.8296566363424062728882,0.1661487598903477191925,0.5635758275166153907776,\
0.8564593489281833171844,0.0048462785780429840088,0.9567344621755182743073,\
0.1947818165645003318787,0.7727439603768289089203,0.7450998444110155105591,\
0.9319220376200973987579,0.8297540741041302680969,0.8786331820301711559296,\
0.9850863516330718994141,0.9117660173214972019196,0.3733268706128001213074,\
0.2097233845852315425873,0.1312689464539289474487,0.5437363986857235431671,\
0.6896163979545235633850,0.9956645886413753032684,0.3840484581887722015381,\
0.3460536063648760318756,0.1614690115675330162048,0.25720636313781142235,\
0.5892038289457559585571,0.3193828281946480274200,0.5760813476517796516418,\
0.8309780987910926342010,0.0873794183135032653809,0.2206377261318266391754,\
0.5555423153564333915710,0.6657536565326154232025,0.5303691830486059188843,\
0.0926435221917927265167,0.2510469639673829078674,0.7339503909461200237274,\
0.1329477317631244659424,0.1434094593860208988190,0.5195322250947356224060,\
0.4021125487051904201508,0.3289982546120882034302,0.5687606376595795154572,\
0.3014845298603177070618,0.6041290420107543468475,0.3006873279809951782227,\
0.4120792248286306858063,0.4186693010851740837097,0.6609355970285832881927,\
0.3494365941733121871948,0.0549050425179302692413,0.5105323204770684242249,\
0.0904512773267924785614,0.5774413160979747772217,0.4321455270983278751373,\
0.3280229708179831504822,0.2514993823133409023285,0.8484858069568872451782,\
0.5656450656242668628693,0.1035893531516194343567,0.1654627206735312938690,\
0.4968057349324226379395,0.5098637067712843418121,0.2160952789708971977234,\
0.3594232588075101375580,0.7527473028749227523804,0.3034152467735111713409,\
0.8694091374054551124573,0.0745361442677676677704,0.3539733029901981353760,\
0.0202146903611719608307,0.0034146374091506004333,0.6833881041966378688812,\
0.3109660465270280838013,0.5139850866980850696564,0.1561934249475598335266,\
0.6600902187637984752655,0.2955771684646606445312,0.9498737403191626071930,\
0.4961295751854777336121,0.9468550696037709712982,0.6213743072003126144409,\
0.7169277970679104328156,0.7426859596744179725647,0.0608082632534205913544,\
0.2845346592366695404053,0.8151792050339281558990,0.1946024885401129722595,\
0.7847843295894563198090,0.0340354088693857192993,0.3110890504904091358185,\
0.5842662276700139045715,0.7858569952659308910370,0.9398910328745841979980,\
0.9551012688316404819489,0.9770033909007906913757,0.0053538321517407894135,\
0.4281874801963567733765,0.5550557305105030536652,0.4340432072058320045471,\
0.1641052807681262493134,0.2516632266342639923096,0.1992107019759714603424,\
0.65790366288274526596,0.226678048726171255112,0.3645872045308351516724,\
0.9226246816106140613556,0.3389491187408566474915,0.1683428841643035411835,\
0.1706836074590682983398,0.9106476106680929660797,0.4218698022887110710144,\
0.8885267241857945919037,0.1128535699099302291870,0.8332714592106640338898,\
0.0108331749215722084045,0.6144992182962596416473,0.0734437219798564910889,\
0.4040901870466768741608,0.1320571741089224815369,0.6390436268411576747894,\
0.5538116190582513809204,0.7576190796680748462677,0.0725553305819630622864,\
0.7358620944432914257050,0.1019380465149879455566,0.7387234591878950595856,\
0.5138037605211138725281,0.0964652984403073787689,0.9568361993879079818726,\
0.6979067702777683734894,0.1790800327435135841370,0.1322964723221957683563,\
0.3785077370703220367432,0.8862080411054193973541,0.2132239108905196189880,\
0.9858398041687905788422,0.6321957129985094070435,0.0434587192721664905548,\
0.0135699706152081489563,0.0944632100872695446014,0.0956843793392181396484,\
0.2736488827504217624664,0.7308020917698740959167,0.6507454826496541500092,\
0.4583958666771650314331,0.8011528258211910724640,0.1584798255935311317444,\
0.3030378143303096294403,0.4810337387025356292725}

#define DRes {0.1744912529357576791433,0.2823742864225169957315,0.2451052593884412711400,\
0.5004402795138161996746,0.0155952021804655512061,0.6297831559001532131248,\
0.5409455090315361536213,0.0480083569003692950394,0.3806040803034145825201,\
0.0154295371430231906262,0.257977685467529749275,0.0828273707923430219102,\
0.9064233444099463188337,0.1073744637443841548619,0.0576003141096106049956,\
0.1511833966150217811730,0.2008882664476865365089,0.3234294236757639939839,\
0.2871542132181882922559,0.0942175789112195266606,0.231306476470241606513,\
0.0012133824877304738923,0.3667293106274266967226,0.3104817157264057603250,\
0.2319123920839998853616,0.5660351495083181250223,0.4384747572539204885089,\
0.2303496741346691967234,0.3049852688101639119900,0.0031861855904077316173,\
0.1915982014560227986166,0.1090290665768997024898,0.6414669751193333713246,\
0.2399699655172445322826,0.0311180340698064966665,0.0247913016148056282451,\
0.1667929958984009919387,0.6389954278891879502211,0.7931134653350897512070,\
0.0015547063882847961258,0.1572904960949201291776,0.0181022206184156195241,\
0.0845979165659015430734,0.1012927010519100584629,0.3446850215525631422331,\
0.1293219709178812792949,0.3800438092639132903194,0.8987814492511753128312,\
0.4324421943462926076762,0.0273293937030998496107,0.5383748770034290087594,\
0.7024833752242779505437,0.1548962282848262428381,0.5390835383288474780272,\
0.1390881426235499873645,0.0006168707728651384725,0.9156652296068464869094,\
0.1317584063853521059162,0.3075374491015804290228,0.0825710356322612165636,\
0.4750149353525452977642,0.4849627047297689896865,0.2277392026712919681497,\
0.2874713311779031332804,0.0549878553904352973536,0.3376097526832130268915,\
0.1299116217371263370950,0.0328670347156327785632,0.4559278322250933657145,\
0.5705347146251601442302,0.7290276258356205296707,0.1131344317595426168799,\
0.1006705540469166465511,0.1137690080263093483914,0.0783595969578743251072,\
0.4462079703492781712626,0.2337267646996942227489,0.3978062726778792690396,\
0.5185533104706666618355,0.0363490080574402352198,0.0620124272747637136916,\
0.0312328029897817466276,0.3864060554321692708690,0.0022524346871346696830,\
0.0632585868588908389887,0.2237670569906841377961,0.6824290171913035552009,\
0.0377571763724054293432,0.0141766430709802434412,0.2149257196483875254067,\
0.2578407933391972939319,0.2128380478225575245244,0.2674689404085963673197,\
0.1823436113853212359182,0.4056056215333987968741,0.2146748219054467332612,\
0.223046689026648065068,0.1634988110612213274564,0.0073293650010406562884,\
0.3150173837340161653309,0.0076249132705958379275,0.0434335216277395089191,\
0.0313505053258816626660,0.2444812036986294678798,0.3466410955044766373234,\
0.1042723904265626388987,0.0453228084791582885860,0.5912990853328871088124,\
0.2007031359569984296787,0.0167049995422212521623,0.1246635280743631640776,\
0.3089842628645015354394,0.2626345091206789272853,0.1465541876274137622627,\
0.2216450586144267098643,0.5285192198927095574845,0.0413300203540647725919,\
0.5292138833303512424067,0.0141045991242647154873,0.1685414827318337249729,\
0.0034690439934227570301,0.0014126709050284813954,0.1046801480137381917812,\
0.0711144568747612698667,0.4926872994178387865638,0.0616951426084962062379,\
0.0165076615799914921956,0.1327941181924368052591,0.868033438078243735347,\
0.0546360997224647759740,0.7090011428942235571782,0.0048974529292317055262,\
0.1686471396630155883400,0.5949381503962772876903,0.0398028687794790766996,\
0.1468791597298964024532,0.5728412246724432499434,0.0107325667316315806477,\
0.4909924875028962021339,0.0286963197327067993936,0.0537998717694305322867,\
0.2438185660472551308242,0.6434233461520417751700,0.2380516082128716348620,\
0.8222033973236569925902,0.1681678001302578939757,0.0041792515466696263798,\
0.0588148261782265452391,0.0012143282530841621129,0.0063615413133502824242,\
0.0500028365202378755061,0.2021051162170970916243,0.1973234385130417933851,\
0.5451384577040119250313,0.1976862794373486775790,0.1076667634679787238783,\
0.5376697382791472135111,0.0985248319409957051818,0.0033678233038544891365,\
0.1219272919799819776543,0.2428156984917200222895,0.2193419366816712900992,\
0.4280317866296952655780,0.0001036289015210918596,0.3201301548639712835076,\
0.0053154752388706117197,0.271595185644301739813,0.0482369297516522660407,\
0.0423107104325134431022,0.0565034955330471419521,0.4799554874706279394836,\
0.20470116123310294620,0.6373039076500160993177,0.0655714026521615894749,\
0.3251362821081638099230,0.0011131668175105025043,0.1505519749814473728922,\
0.4388826857083177879204,0.0379370058772945314973,0.9336139987593442546299,\
0.0587631539765752775040,0.0418948859295049033657,0.0640275938091060398127,\
0.1260139337205268827979,0.8547818589992876026074,0.1128395809574832958644,\
0.0788356698867948707532,0.4771524794855955819983,0.0019453644757141607628,\
0.0114845205520388293774,0.0189004689269446496391,0.0664507489315135924102,\
0.0771809917160177494377,0.5813292520999571166840,0.1319828101737011150085,\
0.3578958571232515595284,0.7499293978433335672307,0.140732697763512853983,\
0.1025732946126776817808,0.4317832519759596809905}



#define CR1 {0.4167818673886358737946f,0.7754927603527903556824f,0.6147445752285420894623f,\
0.2206868808716535568237f,0.4781269435770809650421f,0.1743857422843575477600f,\
0.2262396733276546001434f,0.8763213120400905609131f,0.6657514632679522037506f,\
0.9176845839247107505798f,0.5456351465545594692230f,0.9846978131681680679321f,\
0.6502424892969429492950f,0.6890702964738011360168f,0.5013572606258094310760f,\
0.7673201188445091247559f,0.5771855586208403110504f,0.3508661640807986259460f,\
0.6027267514728009700775f,0.8505915608257055282593f,0.0968277682550251483917f,\
0.1382516110315918922424f,0.3514578486792743206024f,0.0176461227238178253174f,\
0.7433502362109720706940f,0.3358979439362883567810f,0.1121416739188134670258f,\
0.3644763696938753128052f,0.2574999374337494373322f,0.1557759689167141914368f,\
0.7854640143923461437225f,0.3291082531213760375977f,0.9463309147395193576813f,\
0.0348854837939143180847f,0.1279074712656438350677f,0.5625727903097867965698f,\
0.6738048647530376911163f,0.0716566452756524085999f,0.0616879831068217754364f,\
0.1104246191680431365967f,0.5760010988451540470123f,0.8197732111439108848572f,\
0.8186757243238389492035f,0.8735574278980493545532f,0.0946858790703117847443f,\
0.1581676574423909187317f,0.2620503786019980907440f,0.8170662596821784973145f,\
0.4229911291040480136871f,0.4559381706640124320984f,0.2294407873414456844330f,\
0.8959066923707723617554f,0.9569525201804935932159f,0.7509375149384140968323f,\
0.2412989730946719646454f,0.1661008931696414947510f,0.8466569320298731327057f,\
0.1607837742194533348083f,0.4182585380040109157562f,0.0502405483275651931763f,\
0.2407492888160049915314f,0.2450429694727063179016f,0.9512274372391402721405f,\
0.2260366678237915039062f,0.318048770073801279068f,0.5373335508629679679871f,\
0.9679651274345815181732f,0.1066662650555372238159f,0.7000243966467678546906f,\
0.9661027649417519569397f,0.1398940901271998882294f,0.3816659115254878997803f,\
0.3378799916245043277740f,0.3828248968347907066345f,0.8728957301937043666840f,\
0.5871221665292978286743f,0.4679985162802040576935f,0.9163713874295353889465f,\
0.4258406492881476879120f,0.1739088818430900573730f,0.7294957810081541538239f,\
0.3723028255626559257507f,0.8006032942794263362885f,0.0427213814109563827515f,\
0.0376335312612354755402f,0.3958328152075409889221f,0.7473109806887805461884f,\
0.0146575160324573516846f,0.3068419084884226322174f,0.6172137176617980003357f,\
0.7285772911272943019867f,0.206095593050122261047f,0.6171012860722839832306f,\
0.4982942687347531318665f,0.1864698487333953380585f,0.7766191810369491577148f,\
0.9174334802664816379547f,0.0989990709349513053894f,0.9559624656103551387787f,\
0.0187387894839048385620f,0.8602523361332714557648f,0.4824799606576561927795f,\
0.1686216662637889385223f,0.2581604234874248504639f,0.8603236884810030460358f,\
0.9776892503723502159119f,0.4902775860391557216644f,0.5333510134369134902954f,\
0.9720846978016197681427f,0.0181248458102345466614f,0.0364292445592582225800f,\
0.5231507197022438049316f,0.6790725612081587314606f,0.7754972381517291069031f,\
0.8091341941617429256439f,0.6911821123212575912476f,0.1892125983722507953644f,\
0.3070683712139725685120f,0.9991325433366000652313f,0.1158062256872653961182f,\
0.3297157124616205692291f,0.4354123836383223533630f,0.9969553551636636257172f,\
0.9743754882365465164185f,0.6353352260775864124298f,0.0793482260778546333313f,\
0.4567674207501113414764f,0.1505335271358489990234f,0.7237330921925604343414f,\
0.2547941533848643302917f,0.2566944076679646968842f,0.9333118479698896408081f,\
0.5517054800875484943390f,0.4642940917983651161194f,0.6993843833915889263153f,\
0.2767733894288539886475f,0.6460177362896502017975f,0.6939658811315894126892f,\
0.7965537137351930141449f,0.5889529529958963394165f,0.9025987205095589160919f,\
0.7366213919594883918762f,0.9812673362903296947479f,0.5188445076346397399902f,\
0.0478445165790617465973f,0.0598085178062319755554f,0.0917034088633954524994f,\
0.7101853694766759872437f,0.3557815183885395526886f,0.9375250423327088356018f,\
0.9701523329131305217743f,0.9907872565090656280518f,0.7148388908244669437408f,\
0.0643543815240263938904f,0.5210001519881188869476f,0.9661642182618379592896f,\
0.6379804057069122791290f,0.3707732008770108222961f,0.5714463251642882823944f,\
0.4862074404954910278320f,0.3099456527270376682281f,0.2583809075877070426941f,\
0.3787058754824101924896f,0.9536569248884916305542f,0.2653506253845989704132f,\
0.9738010177388787269592f,0.1274459133855998516083f,0.9431200437247753143311f,\
0.7913976819254457950592f,0.3400043984875082969666f,0.2612065351568162441254f,\
0.0993869695812463760376f,0.6489448812790215015411f,0.5638043852522969245911f,\
0.9915560963563621044159f,0.7837929800152778625488f,0.2056846939958631992340f,\
0.3382737739011645317078f,0.8287308602593839168549f,0.4373776372522115707397f,\
0.5751820881851017475128f,0.9588336879387497901917f,0.4775090212933719158173f,\
0.1295908428728580474854f,0.8555219904519617557526f,0.6717643206939101219177f,\
0.9420691034756600856781f,0.2612957675009965896606f,0.0613161218352615833282f,\
0.9738875525072216987610f,0.1835827338509261608124f,0.8908186554908752441406f,\
0.8428192087449133396149f,0.0821714429184794425964f,0.1742917909286916255951f,\
0.6517955046147108078003f,0.5859045688994228839874f,0.2920065978541970252991f,\
0.6918199281208217144012f,0.7315656207501888275146f}

#define CI1 {0.9866490722633898258209f,0.4429044118151068687439f,0.6974684721790254116058f,\
0.8788620475679636001587f,0.6942774769850075244904f,0.2103671850636601448059f,\
0.6422466966323554515839f,0.9095488712191581726074f,0.1162161403335630893707f,\
0.4426801158115267753601f,0.54438647022470831871f,0.6791554000228643417358f,\
0.9790061046369373798370f,0.2613751674070954322815f,0.1820912803523242473602f,\
0.9909572191536426544189f,0.7388255582191050052643f,0.1441168105229735374451f,\
0.2452696315012872219086f,0.408354120329022407532f,0.4353716713376343250275f,\
0.7087596403434872627258f,0.7900028186850249767303f,0.4402949064970016479492f,\
0.0828518071211874485016f,0.4173278687521815299988f,0.8394970758818089962006f,\
0.0684990715235471725464f,0.1918341075070202350616f,0.9186666915193200111389f,\
0.4752700994722545146942f,0.0852253548800945281982f,0.5157074541784822940826f,\
0.2485155304893851280212f,0.2623219466768205165863f,0.2103371713310480117798f,\
0.6155008045025169849396f,0.6057531507685780525208f,0.3520403089933097362518f,\
0.4564149156212806701660f,0.3368119024671614170074f,0.9235646529123187065125f,\
0.1065901606343686580658f,0.7106651421636343002319f,0.7925953646190464496613f,\
0.9542803401127457618713f,0.58853778196498751640f,0.0023766197264194488525f,\
0.9455601410008966922760f,0.0866364603862166404724f,0.759459157940000295639f,\
0.4246732611209154129028f,0.3839263510890305042267f,0.6142078237608075141907f,\
0.7312827515415847301483f,0.1793139278888702392578f,0.3842914947308599948883f,\
0.6737622944638133049011f,0.9141166522167623043060f,0.7132891099900007247925f,\
0.8553560380823910236359f,0.5722871581092476844788f,0.4043100993148982524872f,\
0.4159644804894924163818f,0.2562583745457231998444f,0.7214373638853430747986f,\
0.4564993805252015590668f,0.8455213252454996109009f,0.0832691607065498828888f,\
0.8981556417420506477356f,0.3833881053142249584198f,0.9534438475966453552246f,\
0.0185950272716581821442f,0.0502144945785403251648f,0.7270118533633649349213f,\
0.2758033480495214462280f,0.3350416650064289569855f,0.3654300654307007789612f,\
0.0452371980063617229462f,0.5600892789661884307861f,0.6502862856723368167877f,\
0.823297879658639431000f,0.1572451046667993068695f,0.7963371742516756057739f,\
0.6245094579644501209259f,0.9478004621341824531555f,0.1917487042956054210663f,\
0.1213034540414810180664f,0.6951363184489309787750f,0.9801368294283747673035f,\
0.2816954418085515499115f,0.5644371043890714645386f,0.4424371575005352497101f,\
0.1901238569989800453186f,0.2492035995237529277802f,0.1043982319533824920654f,\
0.6797373802401125431061f,0.5450195213779807090759f,0.1244831955991685390472f,\
0.0048734936863183975220f,0.8619868424721062183380f,0.4545180173590779304504f,\
0.8424912574701011180878f,0.8984384015202522277832f,0.9064385616220533847809f,\
0.8106667501851916313171f,0.9610714702866971492767f,0.5872165020555257797241f,\
0.0191868026740849018097f,0.0414552027359604835510f,0.7443282003514468669891f,\
0.0290854312479496002197f,0.6213145391084253787994f,0.3968256777152419090271f,\
0.4549848935566842556000f,0.4781798440963029861450f,0.9684002888388931751251f,\
0.1858559148386120796204f,0.1994768488220870494843f,0.2484412193298339843750f,\
0.5571343251504004001617f,0.1838635830208659172058f,0.1695283665321767330170f,\
0.0689645390957593917847f,0.9127942626364529132843f,0.9281826475635170936584f,\
0.6239642719738185405731f,0.4998918436467647552490f,0.8513300181366503238678f,\
0.1213616123422980308533f,0.4545058137737214565277f,0.3776026610285043716431f,\
0.8098081466741859912872f,0.8605336369946599006653f,0.6793009373359382152557f,\
0.7579513117671012878418f,0.3389655523933470249176f,0.9117085291072726249695f,\
0.7079389332793653011322f,0.3263010885566473007202f,0.3516225744970142841339f,\
0.7477366114035248756409f,0.7216994608752429485321f,0.7431053109467029571533f,\
0.2207054481841623783112f,0.5686944639310240745544f,0.0127859464846551418304f,\
0.893785255029797554016f,0.3206281405873596668243f,0.0234425412490963935852f,\
0.626293356996029615402f,0.5116549581289291381836f,0.1057835617102682590485f,\
0.8511046646162867546082f,0.1486603482626378536224f,0.1426428984850645065f,\
0.3198941503651440143585f,0.1612193891778588294983f,0.9863557885400950908661f,\
0.9205605499446392059326f,0.4299718351103365421295f,0.5713132461532950401306f,\
0.9785496569238603115082f,0.1216678116470575332642f,0.8786373701877892017365f,\
0.9206458600237965583801f,0.6875183167867362499237f,0.9672853127121925354004f,\
0.2485490464605391025543f,0.7788769407197833061218f,0.2105341642163693904877f,\
0.6432035919278860092163f,0.9326907773502171039581f,0.4684051508083939552307f,\
0.8569896514527499675751f,0.0046391524374485015869f,0.4042695597745478153229f,\
0.8191288476809859275818f,0.5345056853257119655609f,0.9354873914271593093872f,\
0.6799723100848495960236f,0.3743787007406353950500f,0.1877744006924331188202f,\
0.8306224048137664794922f,0.0703320750035345554352f,0.2667721835896372795105f,\
0.1338863088749349117279f,0.1699936669319868087769f,0.8109536175616085529327f,\
0.4827399412170052528381f,0.6378918210975825786591f,0.6532695852220058441162f,\
0.6683483780361711978912f,0.7344740321859717369080f,0.5723471469245851039886f,\
0.8637779299169778823853f,0.114128809887915849686f,0.6580480458214879035950f,\
0.5045945676974952220917f,0.9304931387305259704590f}

#define CR2 {0.4259712868370115756989f,0.7602704120799899101257f,0.0969742774032056331635f,\
0.4801846649497747421265f,0.1877757241018116474152f,0.8814185047522187232971f,\
0.0292700375430285930634f,0.8533888049423694610596f,0.6302552805282175540924f,\
0.5044946586713194847107f,0.1639711013995110988617f,0.7960704732686281204224f,\
0.7220622044987976551056f,0.8315819846466183662415f,0.0036919671110808849335f,\
0.9424226135015487670898f,0.5196401872672140598297f,0.5065894601866602897644f,\
0.4127033217810094356537f,0.6533151101320981979370f,0.501574948895722627640f,\
0.520403296686708927155f,0.0206185649149119853973f,0.4165633432567119598389f,\
0.1275541991926729679108f,0.9734601816162467002869f,0.9600647068582475185394f,\
0.0264936182647943496704f,0.2156869736500084400177f,0.4144923957064747810364f,\
0.2820876422338187694550f,0.0115554705262184143066f,0.2319323443807661533356f,\
0.9741948051378130912781f,0.8930417983792722225189f,0.2787308450788259506226f,\
0.0853875060565769672394f,0.0125637287274003028870f,0.3567141587845981121063f,\
0.4434901513159275054932f,0.5231852368451654911041f,0.4986576801165938377380f,\
0.4054326615296304225922f,0.8140451926738023757935f,0.7187507343478500843048f,\
0.8415299849584698677063f,0.5039089727215468883514f,0.4986489713191986083984f,\
0.1471678265370428562164f,0.3910832731053233146667f,0.3095656349323689937592f,\
0.6046923678368330001831f,0.3414045576937496662140f,0.3275958457961678504944f,\
0.3730975906364619731903f,0.9983476959168910980225f,0.6231481493450701236725f,\
0.1586699178442358971f,0.9230180806480348110199f,0.5935091320425271987915f,\
0.4019993362016975879669f,0.5423517348244786262512f,0.0779389175586402416229f,\
0.6387800201773643493652f,0.1367760770954191684723f,0.6551735652610659599304f,\
0.3303351341746747493744f,0.9712570514529943466187f,0.5526766409166157245636f,\
0.8238675678148865699768f,0.6455440069548785686493f,0.7058613188564777374268f,\
0.2080520675517618656158f,0.6395015334710478782654f,0.0197484544478356838226f,\
0.3289662469178438186646f,0.0045380038209259510040f,0.2727865027263760566711f,\
0.8406948107294738292694f,0.6650723963975906372070f,0.7342959144152700901031f,\
0.2093062577769160270691f,0.8948949738405644893646f,0.6852791439741849899292f,\
0.2581136678345501422882f,0.1234186897054314613342f,0.3650629292242228984833f,\
0.6263032369315624237061f,0.4081154973246157169342f,0.1095790406689047813416f,\
0.6615356481634080410004f,0.3887942228466272354126f,0.2088313368149101734161f,\
0.9898350210860371589661f,0.4314283612184226512909f,0.6836967542767524719238f,\
0.5103755318559706211090f,0.9162438018247485160828f,0.5892742066644132137299f,\
0.8954097684472799301147f,0.6274849255569279193878f,0.9869608813896775245667f,\
0.7128982539288699626923f,0.1304925419390201568604f,0.0781663195230066776276f,\
0.0947508281096816062927f,0.6482759020291268825531f,0.4206676203757524490356f,\
0.0157033097930252552032f,0.7266698973253369331360f,0.6671256530098617076874f,\
0.5488706231117248535156f,0.4477724977768957614899f,0.9336705235764384269714f,\
0.0209862603805959224701f,0.4670969229191541671753f,0.8364190761931240558624f,\
0.1888776877894997596741f,0.2355282525531947612762f,0.7747952006757259368896f,\
0.1726417900063097476959f,0.3532871594652533531189f,0.9888498312793672084808f,\
0.2265578750520944595337f,0.1193372723646461963654f,0.467635613866150379181f,\
0.9175071450881659984589f,0.7378584071993827819824f,0.3163537555374205112457f,\
0.5891926242038607597351f,0.1940289377234876155853f,0.8575854804366827011108f,\
0.441404156852513551712f,0.3922245288267731666565f,0.2196655715815722942352f,\
0.1761240549385547637939f,0.1205885396338999271393f,0.7508801734074950218201f,\
0.2761224261485040187836f,0.6377332974225282669067f,0.2822759491391479969025f,\
0.0232485281303524971008f,0.4800276714377105236053f,0.2259713858366012573242f,\
0.0480956234969198703766f,0.255338179878890514374f,0.8838844164274632930756f,\
0.9909171890467405319214f,0.7547875796444714069366f,0.0237286994233727455139f,\
0.0672572324983775615692f,0.8869388215243816375732f,0.2006625742651522159576f,\
0.1356438836082816123962f,0.0619430518709123134613f,0.3897590730339288711548f,\
0.7104214397259056568146f,0.9051968725398182868958f,0.9548764410428702831268f,\
0.3615677133202552795410f,0.1120837950147688388824f,0.2245571417734026908875f,\
0.0125192492268979549408f,0.1329306717962026596069f,0.2197761316783726215363f,\
0.1487893695011734962463f,0.6704846317879855632782f,0.2702460922300815582275f,\
0.916129274759441614151f,0.2131141787394881248474f,0.2321454486809670925140f,\
0.9974972624331712722778f,0.4280352187342941761017f,0.2013407545164227485657f,\
0.6199770378880202770233f,0.7410524189472198486328f,0.8895133384503424167633f,\
0.5842213360592722892761f,0.0233843638561666011810f,0.7662614267319440841675f,\
0.7854359750635921955109f,0.346477583982050418854f,0.7867635409347712993622f,\
0.3745993338525295257568f,0.3698633969761431217194f,0.4212488224729895591736f,\
0.3815477318130433559418f,0.630106801167130470276f,0.6527381357736885547638f,\
0.4507121564820408821106f,0.8059874209575355052948f,0.0838774070143699645996f,\
0.0486886971630156040192f,0.091624463908374309540f,0.2564150630496442317963f,\
0.4653418269008398056030f,0.2816926469095051288605f,0.5845362627878785133362f,\
0.4137441064231097698212f,0.8090988881886005401611f}

#define CI2 {0.6393490717746317386627f,0.805427453480660915375f,0.1889523915015161037445f,\
0.9860434997826814651489f,0.1705104154534637928009f,0.5185149358585476875305f,\
0.2712999242357909679413f,0.1075414568185806274414f,0.9200236895121634006500f,\
0.0489821014925837516785f,0.3230310245417058467865f,0.7714011203497648239136f,\
0.7943310593254864215851f,0.0943802008405327796936f,0.1643108497373759746552f,\
0.6183919720351696014404f,0.1516798050142824649811f,0.8934515854343771934509f,\
0.7921462929807603359222f,0.1680600438266992568970f,0.7106916573829948902130f,\
0.4711248250678181648254f,0.5770412567071616649628f,0.4025902226567268371582f,\
0.8710415088571608066559f,0.1784316999837756156921f,0.481136301066726446152f,\
0.0674654301255941390991f,0.0399954994209110736847f,0.2460960680618882179260f,\
0.6415826673619449138641f,0.1576726771891117095947f,0.0585584775544703006744f,\
0.5705446070060133934021f,0.1629006764851510524750f,0.5582059938460588455200f,\
0.3209808361716568470001f,0.4510894315317273139954f,0.4620725023560225963593f,\
0.3076162338256835937500f,0.6813747235573828220367f,0.4970325855538249015808f,\
0.0101193203590810298920f,0.4533577542752027511597f,0.7411896293051540851593f,\
0.4234424093738198280334f,0.8139128307811915874481f,0.9676819704473018646240f,\
0.6112973452545702457428f,0.9543517818674445152283f,0.4819711572490632534027f,\
0.6928277853876352310181f,0.7424363014288246631622f,0.5521282376721501350403f,\
0.217989120166748762131f,0.7842588946223258972168f,0.9177652769722044467926f,\
0.1917659593746066093445f,0.5858528851531445980072f,0.6206979658454656600952f,\
0.0012764860875904560089f,0.8988496446982026100159f,0.3898889864794909954071f,\
0.6497076936066150665283f,0.5358180389739573001862f,0.2699402486905455589294f,\
0.514097725506871938705f,0.1375687289983034133911f,0.7844757777638733386993f,\
0.6941326009109616279602f,0.0641209441237151622772f,0.2922044843435287475586f,\
0.3090644874610006809235f,0.4945348976179957389832f,0.6556941731832921504974f,\
0.7279028128832578659058f,0.6794784818775951862335f,0.7084200689569115638733f,\
0.1933331559412181377411f,0.7405845634639263153076f,0.4076515645720064640045f,\
0.7247990211471915245056f,0.9830047464929521083832f,0.3623690102249383926392f,\
0.6998763647861778736115f,0.4981657536700367927551f,0.5225321832112967967987f,\
0.6641861572861671447754f,0.1212330483831465244293f,0.5571643514558672904968f,\
0.8134847371838986873627f,0.275185918435454368591f,0.7658774037845432758331f,\
0.5269278520718216896057f,0.5383017356507480144501f,0.5876941718161106109619f,\
0.0269383029080927371979f,0.3838389879092574119568f,0.9464009604416787624359f,\
0.6164656896144151687622f,0.5597745371051132678986f,0.1614628033712506294250f,\
0.7930214214138686656952f,0.9809839427471160888672f,0.5323410280980169773102f,\
0.3264011470600962638855f,0.1745505048893392086029f,0.9795577805489301681519f,\
0.7564144139178097248077f,0.5428190389648079872131f,0.6040854970924556255341f,\
0.2239649854600429534912f,0.7934280098415911197662f,0.0443929126486182212830f,\
0.1709794825874269008636f,0.8033927027136087417603f,0.6286661443300545215607f,\
0.3324307324364781379700f,0.1281216177158057689667f,0.4464247450232505798340f,\
0.0075678699649870395660f,0.4189139856025576591492f,0.7507017790339887142181f,\
0.64982577227056026459f,0.0278900493867695331573f,0.3332115495577454566956f,\
0.8102095867507159709930f,0.2428723461925983428955f,0.0814798162318766117096f,\
0.1112154340371489524841f,0.5074178031645715236664f,0.3559808600693941116333f,\
0.7394064110703766345978f,0.9856483982875943183899f,0.2081001061014831066132f,\
0.2623823434114456176758f,0.6742023923434317111969f,0.9962934432551264762878f,\
0.8252332373522222042084f,0.0615941416472196578979f,0.2129642223007977008820f,\
0.7388951787725090980530f,0.1914335261099040508270f,0.6734384708106517791748f,\
0.6150622279383242130280f,0.4714830657467246055603f,0.2653777874074876308441f,\
0.1113578472286462783813f,0.6682099369354546070099f,0.2968665333464741706848f,\
0.5159585955552756786346f,0.5037773922085762023926f,0.6966427885927259922028f,\
0.6400519711896777153015f,0.3279239325784146785736f,0.8322640117257833480835f,\
0.5751562197692692279816f,0.7393315965309739112854f,0.7727512116543948650360f,\
0.8552324511110782623291f,0.8427531258203089237213f,0.3697941964492201805115f,\
0.5885056755505502223969f,0.185948224738240242004f,0.5096506965346634387970f,\
0.5180077450349926948547f,0.7124331700615584850311f,0.9935774207115173339844f,\
0.6513966270722448825836f,0.2266238955780863761902f,0.2100372924469411373138f,\
0.296033380553126335144f,0.3838447039015591144562f,0.3276543477550148963928f,\
0.9443909148685634136200f,0.3133702538907527923584f,0.3127397657372057437897f,\
0.2831690898165106773376f,0.8294320828281342983246f,0.8504734281450510025024f,\
0.0516620394773781299591f,0.8521665157750248908997f,0.0109942886047065258026f,\
0.1777968332171440124512f,0.9020808511413633823395f,0.8023654175922274589539f,\
0.8193211196921765804291f,0.3788971211761236190796f,0.2892677118070423603058f,\
0.3856688523665070533752f,0.8368152822367846965790f,0.6335147209465503692627f,\
0.0478187785483896732330f,0.7960498845204710960388f,0.9247719994746148586273f,\
0.4049517679959535598755f,0.1505366903729736804962f,0.3286092029884457588196f,\
0.5528467851690948009491f,0.0004969090223312377930f}

#define CResR {-0.4532760601370298680912f,0.2328568279348733338630f,-0.0721739248448070302988f,\
-0.7606257532599224324699f,-0.0286009079979238634017f,0.0446282927443572285942f,\
-0.1676194364050221097262f,0.6500285865688182340705f,0.3126717730334664935299f,\
0.4412835685735998492163f,-0.0863853232804955989410f,0.2599876176861364296400f,\
-0.3081394309018399835232f,0.5483498039081077246593f,-0.0280685784873250555871f,\
0.1103398428388524532551f,0.1878638951594227557429f,0.0489837078099595035763f,\
0.0544579030846000788912f,0.4870763078789703826033f,-0.2608486317663467612959f,\
-0.2619676674188661236187f,-0.4486176628283578549095f,-0.1699076965638988134799f,\
0.0226500810131932545088f,0.2525187524366853675239f,-0.2962492545486477002470f,\
0.0050349784816676457222f,0.0478668812844439128806f,-0.161512306092542023972f,\
-0.0833553662573387199597f,-0.0096347091494573405823f,0.1892857042353479901653f,\
-0.1078039385912064745954f,0.0714942955946598623918f,0.0393949194957836229536f,\
-0.1400294459234943666992f,-0.2723485697759917556482f,-0.1406631695056576036862f,\
-0.0914284063414464026609f,0.0718601543879791859748f,-0.0502555196723774022516f,\
0.3308392578597269539920f,0.3889296718119258922108f,-0.5194079193768161850642f,\
-0.2709799400469976582428f,-0.3469689150581814485186f,0.4051294378302779941592f,\
-0.5157677188576927918007f,0.0956281317726613566688f,-0.2950104262230037743819f,\
0.2475225041547986504220f,0.0416670917625362458026f,-0.0931174729511790588710f,\
-0.0693836181169946164538f,0.0251979011091364446528f,0.1749033102248601090345f,\
-0.1036931245422025305025f,-0.1494776851046086263430f,-0.4129188753992821814265f,\
0.0956892042125161157440f,-0.381500629131777346803f,-0.0834984180348100207825f,\
-0.1258676160077962236095f,-0.0938063966240257895990f,0.1573017568314179215339f,\
0.0850675970242064927174f,-0.0127169319676398440144f,0.3215644924894006106975f,\
0.1725016235865347580258f,0.0657245842114690947966f,-0.0091973641655471172207f,\
0.0645495682688117383696f,0.2199842886414065112888f,-0.4594590945201037501811f,\
-0.0076146572424504455068f,-0.2255298228492429168934f,-0.0089042461759258062504f,\
0.3492561737977078473172f,-0.2991314773617905764524f,0.2705755498034173589517f,\
-0.5188001861108486600926f,0.5618831798406120903167f,-0.2592918419562091347785f,\
-0.4273656804273420206641f,-0.4233085641525572428989f,0.1726206665681528085177f,\
-0.0713880252688461475197f,0.0409534431553852107388f,-0.4784636138374023794917f,\
0.2528249080775029078438f,-0.0751963670383180432522f,-0.2099825350036476079296f,\
0.3930475624040330462350f,-0.0536983488983542034401f,0.4696177809171224182272f,\
0.4499246289866181136574f,-0.1184924563459542473653f,0.4455130076495959490224f,\
0.0137745535065977864342f,0.0572770873632376664730f,0.4028010939579977911507f,\
-0.5479035230736655215367f,-0.8476656355498256578684f,-0.4152860994745538603112f,\
-0.1719656910372130420583f,0.1500796339609139773419f,-0.3508489918077146718645f,\
0.0007517730549635760762f,-0.0093318934652646470806f,-0.4253349873439855599599f,\
0.2806279433177717441694f,-0.1888983413465122329633f,0.7064426647296654371289f,\
-0.0608123808038953800326f,-0.0613171594896803062724f,-0.4505394490178394883984f,\
-0.0037858539492685930328f,0.2097666454331615359941f,-0.0211842001217234093824f,\
0.0527063906668108692055f,0.0768025778411403764467f,0.8585738883942192201104f,\
0.1759375052405339756589f,0.0503612958523844411740f,-0.2721751218561426211018f,\
-0.0864544627613991201187f,-0.0103374763464706836968f,0.1595894682913722162354f,\
0.1366255514725323583214f,-0.1808181983112125135182f,0.6659753695010871554771f,\
-0.3552522431189574225741f,-0.6660760695837163458677f,0.0122680731984931845613f,\
-0.1501265897279337457881f,-0.1506290509488406037519f,-0.3872440085463784154030f,\
-0.3642683937636469471144f,0.3554966732726081435345f,0.1798988824024553845327f,\
-0.5353736140053680925277f,0.3328780019103673160075f,-0.3831916918313129638562f,\
-0.1334464728224985796690f,-0.2528584112494918212377f,0.0776621078396230318797f,\
0.6042048881391237635796f,0.0542925615451090859409f,0.0152869439779466861906f,\
-0.2578916798676885169250f,0.6210074811527457327998f,0.0697480566005716229316f,\
-0.5360219400392558508628f,-0.0164769465814076573884f,0.2578547191709110730784f,\
0.2692458480889036165351f,0.2164281534628332004377f,-0.2165469974967820787626f,\
-0.6114963430660671495076f,-0.3276202230479545729480f,-0.1532470446853400614096f,\
-0.5711409136688807564042f,0.1041463421049710486033f,-0.3894804137321275505634f,\
-0.3320104464777595687508f,-0.4043603275945338859643f,-0.7061983397762294778488f,\
0.563118573862244065076f,-0.104052368330380548556f,0.0164178824827940009201f,\
-0.0912715036235035442891f,-0.0802371510589425240845f,-0.0399581838468483496740f,\
-0.1945912294495280026041f,0.5793779114170104493908f,0.0565281114058220068852f,\
-0.0343252140979214692695f,-0.4239568198880452332133f,-0.4604615564320009846178f,\
0.4166399479456509569175f,0.0131813866470892881999f,0.3736222424672819841796f,\
-0.0991373897615358684599f,0.2529810514946274069281f,0.0689311545837876515908f,\
0.2497484491434210918115f,0.1002341291998606193081f,-0.1945593262740688278445f,\
0.2527651998409092271025f,-0.3858322501194685338888f,-0.3391363400421857909883f,\
0.0090761661352664196878f,-0.5771490540989443474018f,-0.4845995748950238657393f,\
-0.0464806889926007715808f,0.1478644355329177817460f,-0.0455521984464080931243f,\
0.0072729334007000101536f,0.5914465599501286252604f}

#define CResI {0.6867532750160018073515f,0.9613302788463532477792f,0.1837939587530955376504f,\
0.6396229422193046021405f,0.2118940797572615719613f,0.2758431416829634774679f,\
0.0801773911552379342504f,0.8704396947843597853733f,0.6857529536617394949616f,\
0.2682798733548960590234f,0.265520729527220722410f,1.3002525570030343260441f,\
1.22341111147360948053f,0.2823894734241773618599f,0.0830507125337052176661f,\
1.4084050938175196598934f,0.4714708444194484759926f,0.3864899878199242189147f,\
0.578671353512100639094f,0.4097343720866399863212f,0.2871862109036796839590f,\
0.4339746194558397052177f,0.2190944030815045462379f,0.1905148747457021396468f,\
0.6580570072675409054597f,0.4661869040666266617023f,0.8599269442495538484650f,\
0.0264043433044500661100f,0.0516749566895557260748f,0.4191162112725183019890f,\
0.6380079192550233146974f,0.0528761984310826271827f,0.1750249364921274419782f,\
0.262006263440240305673f,0.2551006766112977608429f,0.3726589610422177956117f,\
0.2688345275772468512265f,0.0399340736448891148180f,0.1540820834002836481336f,\
0.2363839254618368690419f,0.5686876044589181944389f,0.8679966059615636941871f,\
0.0514995744434985636140f,0.9745475763214328512873f,0.6398586919691986452108f,\
0.87003041421366145158f,0.5098556345730298478003f,0.7918453871370533247998f,\
0.3977293850986994838692f,0.4690074760926845609532f,0.3456862982279912954731f,\
0.8775057294133996599328f,0.8415504958063240170674f,0.6158257382443957927975f,\
0.3254403835162152369698f,0.3092837496266652719257f,1.016502867475419513710f,\
0.1377386626241807465743f,1.0887841690471091737891f,0.4545278067154325807309f,\
0.3441598726430060706249f,0.5306377190646557329146f,0.4023845929152815026342f,\
0.4125675613624649740174f,0.2054662834722358610851f,0.6177146421590287150849f,\
0.6484264545005361535246f,0.8358924918092586198171f,0.5951731030444011860681f,\
1.4105647290575316077366f,0.2564640348596678998128f,0.7845236225889706815906f,\
0.1082954403048045077806f,0.2214325174472631663214f,0.5867100045537700925280f,\
0.5180978688180153390874f,0.3195153417190086386768f,0.7488602710128838824133f,\
0.1203597942708250490007f,0.5012941523009060151850f,0.7748826592461299789250f,\
0.4421661217651661757166f,0.9277146921619219277488f,0.5611941617833399176263f,\
0.1875332458457515116823f,0.3141666438540002825874f,0.4604943819421867812203f,\
0.0857080651661168146926f,0.3208952842499418478539f,0.4512919342037237102616f,\
0.7790380828723415529424f,0.2761644904057471983094f,0.5650186739065693464212f,\
0.4507563807256466659190f,0.2078905437719839599531f,0.5277912987547750400807f,\
0.3716354279518757630640f,0.5373704615276944096536f,0.9780785319295863811107f,\
0.0159155946349303842324f,1.0224311029322552535348f,0.5264940700384401761625f,\
0.7343311398624580155214f,0.3704907408839669402667f,0.5288385630587791874646f,\
0.3959302386908920556863f,0.7086176744936288907084f,0.7694711035408567934013f,\
0.7356001732724122277318f,0.0399627592998382727418f,0.5185668150213963434325f,\
0.1331315821040593705415f,0.8170027538591018156922f,0.4049310194334793111537f,\
0.1478937773069877170684f,0.7786469990644202532337f,0.9289400296531356016061f,\
0.1371829990074564797897f,0.1749929113926765866793f,0.2441898291613232296893f,\
0.0986799128052451290927f,0.2473569799851849937422f,0.9160542553812340837993f,\
0.6487987635563003951944f,0.1266499083655910351531f,0.4604910075393342516747f,\
0.9425690210228523380209f,0.4054098304412955267040f,0.3282910877920472980662f,\
0.0998424092123958162315f,0.2184385926591740634262f,0.656067713825576603881f,\
0.7653872511944090906155f,0.7951531282252717325321f,0.2947609930653066756534f,\
0.2061139089866899365422f,0.4764220642520822779353f,1.3759775156473299518f,\
0.8528204157327108347886f,0.2443691207681686350384f,0.2914758305179087627401f,\
0.5616697707438699227467f,0.5342831779243247813938f,0.5173303887471423223587f,\
0.0400423211013342383868f,0.1734081126603988776136f,0.0356373465889542606622f,\
0.9647518864037544217283f,0.4797428841650468456237f,0.2788760702578375605398f,\
0.5426811930882043943924f,0.9529428659076060181832f,0.519214160106206801260f,\
0.1566372908148228326741f,0.1800568943774761565546f,0.8597000721649141752323f,\
0.5941980612955533036512f,0.4200596294318775236754f,1.3834337451293550191878f,\
0.7486653540997223466036f,0.3094005426987578855069f,0.2238402297126847184661f,\
0.2351212641216636478614f,0.1935041961305615509925f,0.3283396534211000528103f,\
0.6414187863585038007486f,0.5517671615629442527506f,1.1984678562974182547407f,\
0.7432168383550731283194f,0.2430428408595447509200f,0.1037376614284659104293f,\
0.6710156827233160203861f,0.6483185566975374625187f,0.2790420045943993176962f,\
1.4677304745898491766809f,0.2490552602808134563528f,0.4239289487649033905114f,\
0.5743412264612666184860f,0.6998750389577383934636f,1.0888059617925907041069f,\
0.5637897941342366880946f,0.9467997907854363015545f,0.1529839243771335122180f,\
0.3341914410029577231498f,0.7977632654942472534287f,0.6513779279028111268701f,\
0.8229411301591347260853f,0.2061183797708181497654f,0.5470771267862610809374f,\
0.5931748546354166373717f,0.6677576209776094895432f,0.6191412908370578227490f,\
0.0728435968768978286958f,0.1327083570997977524097f,0.3079385977540891605742f,\
0.6658977419097338312781f,0.1203493812224817605117f,0.4806090008275944458482f,\
0.5912434516954661045673f,0.7532244855713678965969f}

#define ZR1 {0.4167818673886358737946,0.7754927603527903556824,0.6147445752285420894623,\
0.2206868808716535568237,0.4781269435770809650421,0.1743857422843575477600,\
0.2262396733276546001434,0.8763213120400905609131,0.6657514632679522037506,\
0.9176845839247107505798,0.5456351465545594692230,0.9846978131681680679321,\
0.6502424892969429492950,0.6890702964738011360168,0.5013572606258094310760,\
0.7673201188445091247559,0.5771855586208403110504,0.3508661640807986259460,\
0.6027267514728009700775,0.8505915608257055282593,0.0968277682550251483917,\
0.1382516110315918922424,0.3514578486792743206024,0.0176461227238178253174,\
0.7433502362109720706940,0.3358979439362883567810,0.1121416739188134670258,\
0.3644763696938753128052,0.2574999374337494373322,0.1557759689167141914368,\
0.7854640143923461437225,0.3291082531213760375977,0.9463309147395193576813,\
0.0348854837939143180847,0.1279074712656438350677,0.5625727903097867965698,\
0.6738048647530376911163,0.0716566452756524085999,0.0616879831068217754364,\
0.1104246191680431365967,0.5760010988451540470123,0.8197732111439108848572,\
0.8186757243238389492035,0.8735574278980493545532,0.0946858790703117847443,\
0.1581676574423909187317,0.2620503786019980907440,0.8170662596821784973145,\
0.4229911291040480136871,0.4559381706640124320984,0.2294407873414456844330,\
0.8959066923707723617554,0.9569525201804935932159,0.7509375149384140968323,\
0.2412989730946719646454,0.1661008931696414947510,0.8466569320298731327057,\
0.1607837742194533348083,0.4182585380040109157562,0.0502405483275651931763,\
0.2407492888160049915314,0.2450429694727063179016,0.9512274372391402721405,\
0.2260366678237915039062,0.318048770073801279068,0.5373335508629679679871,\
0.9679651274345815181732,0.1066662650555372238159,0.7000243966467678546906,\
0.9661027649417519569397,0.1398940901271998882294,0.3816659115254878997803,\
0.3378799916245043277740,0.3828248968347907066345,0.8728957301937043666840,\
0.5871221665292978286743,0.4679985162802040576935,0.9163713874295353889465,\
0.4258406492881476879120,0.1739088818430900573730,0.7294957810081541538239,\
0.3723028255626559257507,0.8006032942794263362885,0.0427213814109563827515,\
0.0376335312612354755402,0.3958328152075409889221,0.7473109806887805461884,\
0.0146575160324573516846,0.3068419084884226322174,0.6172137176617980003357,\
0.7285772911272943019867,0.206095593050122261047,0.6171012860722839832306,\
0.4982942687347531318665,0.1864698487333953380585,0.7766191810369491577148,\
0.9174334802664816379547,0.0989990709349513053894,0.9559624656103551387787,\
0.0187387894839048385620,0.8602523361332714557648,0.4824799606576561927795,\
0.1686216662637889385223,0.2581604234874248504639,0.8603236884810030460358,\
0.9776892503723502159119,0.4902775860391557216644,0.5333510134369134902954,\
0.9720846978016197681427,0.0181248458102345466614,0.0364292445592582225800,\
0.5231507197022438049316,0.6790725612081587314606,0.7754972381517291069031,\
0.8091341941617429256439,0.6911821123212575912476,0.1892125983722507953644,\
0.3070683712139725685120,0.9991325433366000652313,0.1158062256872653961182,\
0.3297157124616205692291,0.4354123836383223533630,0.9969553551636636257172,\
0.9743754882365465164185,0.6353352260775864124298,0.0793482260778546333313,\
0.4567674207501113414764,0.1505335271358489990234,0.7237330921925604343414,\
0.2547941533848643302917,0.2566944076679646968842,0.9333118479698896408081,\
0.5517054800875484943390,0.4642940917983651161194,0.6993843833915889263153,\
0.2767733894288539886475,0.6460177362896502017975,0.6939658811315894126892,\
0.7965537137351930141449,0.5889529529958963394165,0.9025987205095589160919,\
0.7366213919594883918762,0.9812673362903296947479,0.5188445076346397399902,\
0.0478445165790617465973,0.0598085178062319755554,0.0917034088633954524994,\
0.7101853694766759872437,0.3557815183885395526886,0.9375250423327088356018,\
0.9701523329131305217743,0.9907872565090656280518,0.7148388908244669437408,\
0.0643543815240263938904,0.5210001519881188869476,0.9661642182618379592896,\
0.6379804057069122791290,0.3707732008770108222961,0.5714463251642882823944,\
0.4862074404954910278320,0.3099456527270376682281,0.2583809075877070426941,\
0.3787058754824101924896,0.9536569248884916305542,0.2653506253845989704132,\
0.9738010177388787269592,0.1274459133855998516083,0.9431200437247753143311,\
0.7913976819254457950592,0.3400043984875082969666,0.2612065351568162441254,\
0.0993869695812463760376,0.6489448812790215015411,0.5638043852522969245911,\
0.9915560963563621044159,0.7837929800152778625488,0.2056846939958631992340,\
0.3382737739011645317078,0.8287308602593839168549,0.4373776372522115707397,\
0.5751820881851017475128,0.9588336879387497901917,0.4775090212933719158173,\
0.1295908428728580474854,0.8555219904519617557526,0.6717643206939101219177,\
0.9420691034756600856781,0.2612957675009965896606,0.0613161218352615833282,\
0.9738875525072216987610,0.1835827338509261608124,0.8908186554908752441406,\
0.8428192087449133396149,0.0821714429184794425964,0.1742917909286916255951,\
0.6517955046147108078003,0.5859045688994228839874,0.2920065978541970252991,\
0.6918199281208217144012,0.7315656207501888275146}

#define ZI1 {0.9866490722633898258209,0.4429044118151068687439,0.6974684721790254116058,\
0.8788620475679636001587,0.6942774769850075244904,0.2103671850636601448059,\
0.6422466966323554515839,0.9095488712191581726074,0.1162161403335630893707,\
0.4426801158115267753601,0.54438647022470831871,0.6791554000228643417358,\
0.9790061046369373798370,0.2613751674070954322815,0.1820912803523242473602,\
0.9909572191536426544189,0.7388255582191050052643,0.1441168105229735374451,\
0.2452696315012872219086,0.408354120329022407532,0.4353716713376343250275,\
0.7087596403434872627258,0.7900028186850249767303,0.4402949064970016479492,\
0.0828518071211874485016,0.4173278687521815299988,0.8394970758818089962006,\
0.0684990715235471725464,0.1918341075070202350616,0.9186666915193200111389,\
0.4752700994722545146942,0.0852253548800945281982,0.5157074541784822940826,\
0.2485155304893851280212,0.2623219466768205165863,0.2103371713310480117798,\
0.6155008045025169849396,0.6057531507685780525208,0.3520403089933097362518,\
0.4564149156212806701660,0.3368119024671614170074,0.9235646529123187065125,\
0.1065901606343686580658,0.7106651421636343002319,0.7925953646190464496613,\
0.9542803401127457618713,0.58853778196498751640,0.0023766197264194488525,\
0.9455601410008966922760,0.0866364603862166404724,0.759459157940000295639,\
0.4246732611209154129028,0.3839263510890305042267,0.6142078237608075141907,\
0.7312827515415847301483,0.1793139278888702392578,0.3842914947308599948883,\
0.6737622944638133049011,0.9141166522167623043060,0.7132891099900007247925,\
0.8553560380823910236359,0.5722871581092476844788,0.4043100993148982524872,\
0.4159644804894924163818,0.2562583745457231998444,0.7214373638853430747986,\
0.4564993805252015590668,0.8455213252454996109009,0.0832691607065498828888,\
0.8981556417420506477356,0.3833881053142249584198,0.9534438475966453552246,\
0.0185950272716581821442,0.0502144945785403251648,0.7270118533633649349213,\
0.2758033480495214462280,0.3350416650064289569855,0.3654300654307007789612,\
0.0452371980063617229462,0.5600892789661884307861,0.6502862856723368167877,\
0.823297879658639431000,0.1572451046667993068695,0.7963371742516756057739,\
0.6245094579644501209259,0.9478004621341824531555,0.1917487042956054210663,\
0.1213034540414810180664,0.6951363184489309787750,0.9801368294283747673035,\
0.2816954418085515499115,0.5644371043890714645386,0.4424371575005352497101,\
0.1901238569989800453186,0.2492035995237529277802,0.1043982319533824920654,\
0.6797373802401125431061,0.5450195213779807090759,0.1244831955991685390472,\
0.0048734936863183975220,0.8619868424721062183380,0.4545180173590779304504,\
0.8424912574701011180878,0.8984384015202522277832,0.9064385616220533847809,\
0.8106667501851916313171,0.9610714702866971492767,0.5872165020555257797241,\
0.0191868026740849018097,0.0414552027359604835510,0.7443282003514468669891,\
0.0290854312479496002197,0.6213145391084253787994,0.3968256777152419090271,\
0.4549848935566842556000,0.4781798440963029861450,0.9684002888388931751251,\
0.1858559148386120796204,0.1994768488220870494843,0.2484412193298339843750,\
0.5571343251504004001617,0.1838635830208659172058,0.1695283665321767330170,\
0.0689645390957593917847,0.9127942626364529132843,0.9281826475635170936584,\
0.6239642719738185405731,0.4998918436467647552490,0.8513300181366503238678,\
0.1213616123422980308533,0.4545058137737214565277,0.3776026610285043716431,\
0.8098081466741859912872,0.8605336369946599006653,0.6793009373359382152557,\
0.7579513117671012878418,0.3389655523933470249176,0.9117085291072726249695,\
0.7079389332793653011322,0.3263010885566473007202,0.3516225744970142841339,\
0.7477366114035248756409,0.7216994608752429485321,0.7431053109467029571533,\
0.2207054481841623783112,0.5686944639310240745544,0.0127859464846551418304,\
0.893785255029797554016,0.3206281405873596668243,0.0234425412490963935852,\
0.626293356996029615402,0.5116549581289291381836,0.1057835617102682590485,\
0.8511046646162867546082,0.1486603482626378536224,0.1426428984850645065,\
0.3198941503651440143585,0.1612193891778588294983,0.9863557885400950908661,\
0.9205605499446392059326,0.4299718351103365421295,0.5713132461532950401306,\
0.9785496569238603115082,0.1216678116470575332642,0.8786373701877892017365,\
0.9206458600237965583801,0.6875183167867362499237,0.9672853127121925354004,\
0.2485490464605391025543,0.7788769407197833061218,0.2105341642163693904877,\
0.6432035919278860092163,0.9326907773502171039581,0.4684051508083939552307,\
0.8569896514527499675751,0.0046391524374485015869,0.4042695597745478153229,\
0.8191288476809859275818,0.5345056853257119655609,0.9354873914271593093872,\
0.6799723100848495960236,0.3743787007406353950500,0.1877744006924331188202,\
0.8306224048137664794922,0.0703320750035345554352,0.2667721835896372795105,\
0.1338863088749349117279,0.1699936669319868087769,0.8109536175616085529327,\
0.4827399412170052528381,0.6378918210975825786591,0.6532695852220058441162,\
0.6683483780361711978912,0.7344740321859717369080,0.5723471469245851039886,\
0.8637779299169778823853,0.114128809887915849686,0.6580480458214879035950,\
0.5045945676974952220917,0.9304931387305259704590}

#define ZR2 {0.4259712868370115756989,0.7602704120799899101257,0.0969742774032056331635,\
0.4801846649497747421265,0.1877757241018116474152,0.8814185047522187232971,\
0.0292700375430285930634,0.8533888049423694610596,0.6302552805282175540924,\
0.5044946586713194847107,0.1639711013995110988617,0.7960704732686281204224,\
0.7220622044987976551056,0.8315819846466183662415,0.0036919671110808849335,\
0.9424226135015487670898,0.5196401872672140598297,0.5065894601866602897644,\
0.4127033217810094356537,0.6533151101320981979370,0.501574948895722627640,\
0.520403296686708927155,0.0206185649149119853973,0.4165633432567119598389,\
0.1275541991926729679108,0.9734601816162467002869,0.9600647068582475185394,\
0.0264936182647943496704,0.2156869736500084400177,0.4144923957064747810364,\
0.2820876422338187694550,0.0115554705262184143066,0.2319323443807661533356,\
0.9741948051378130912781,0.8930417983792722225189,0.2787308450788259506226,\
0.0853875060565769672394,0.0125637287274003028870,0.3567141587845981121063,\
0.4434901513159275054932,0.5231852368451654911041,0.4986576801165938377380,\
0.4054326615296304225922,0.8140451926738023757935,0.7187507343478500843048,\
0.8415299849584698677063,0.5039089727215468883514,0.4986489713191986083984,\
0.1471678265370428562164,0.3910832731053233146667,0.3095656349323689937592,\
0.6046923678368330001831,0.3414045576937496662140,0.3275958457961678504944,\
0.3730975906364619731903,0.9983476959168910980225,0.6231481493450701236725,\
0.1586699178442358971,0.9230180806480348110199,0.5935091320425271987915,\
0.4019993362016975879669,0.5423517348244786262512,0.0779389175586402416229,\
0.6387800201773643493652,0.1367760770954191684723,0.6551735652610659599304,\
0.3303351341746747493744,0.9712570514529943466187,0.5526766409166157245636,\
0.8238675678148865699768,0.6455440069548785686493,0.7058613188564777374268,\
0.2080520675517618656158,0.6395015334710478782654,0.0197484544478356838226,\
0.3289662469178438186646,0.0045380038209259510040,0.2727865027263760566711,\
0.8406948107294738292694,0.6650723963975906372070,0.7342959144152700901031,\
0.2093062577769160270691,0.8948949738405644893646,0.6852791439741849899292,\
0.2581136678345501422882,0.1234186897054314613342,0.3650629292242228984833,\
0.6263032369315624237061,0.4081154973246157169342,0.1095790406689047813416,\
0.6615356481634080410004,0.3887942228466272354126,0.2088313368149101734161,\
0.9898350210860371589661,0.4314283612184226512909,0.6836967542767524719238,\
0.5103755318559706211090,0.9162438018247485160828,0.5892742066644132137299,\
0.8954097684472799301147,0.6274849255569279193878,0.9869608813896775245667,\
0.7128982539288699626923,0.1304925419390201568604,0.0781663195230066776276,\
0.0947508281096816062927,0.6482759020291268825531,0.4206676203757524490356,\
0.0157033097930252552032,0.7266698973253369331360,0.6671256530098617076874,\
0.5488706231117248535156,0.4477724977768957614899,0.9336705235764384269714,\
0.0209862603805959224701,0.4670969229191541671753,0.8364190761931240558624,\
0.1888776877894997596741,0.2355282525531947612762,0.7747952006757259368896,\
0.1726417900063097476959,0.3532871594652533531189,0.9888498312793672084808,\
0.2265578750520944595337,0.1193372723646461963654,0.467635613866150379181,\
0.9175071450881659984589,0.7378584071993827819824,0.3163537555374205112457,\
0.5891926242038607597351,0.1940289377234876155853,0.8575854804366827011108,\
0.441404156852513551712,0.3922245288267731666565,0.2196655715815722942352,\
0.1761240549385547637939,0.1205885396338999271393,0.7508801734074950218201,\
0.2761224261485040187836,0.6377332974225282669067,0.2822759491391479969025,\
0.0232485281303524971008,0.4800276714377105236053,0.2259713858366012573242,\
0.0480956234969198703766,0.255338179878890514374,0.8838844164274632930756,\
0.9909171890467405319214,0.7547875796444714069366,0.0237286994233727455139,\
0.0672572324983775615692,0.8869388215243816375732,0.2006625742651522159576,\
0.1356438836082816123962,0.0619430518709123134613,0.3897590730339288711548,\
0.7104214397259056568146,0.9051968725398182868958,0.9548764410428702831268,\
0.3615677133202552795410,0.1120837950147688388824,0.2245571417734026908875,\
0.0125192492268979549408,0.1329306717962026596069,0.2197761316783726215363,\
0.1487893695011734962463,0.6704846317879855632782,0.2702460922300815582275,\
0.916129274759441614151,0.2131141787394881248474,0.2321454486809670925140,\
0.9974972624331712722778,0.4280352187342941761017,0.2013407545164227485657,\
0.6199770378880202770233,0.7410524189472198486328,0.8895133384503424167633,\
0.5842213360592722892761,0.0233843638561666011810,0.7662614267319440841675,\
0.7854359750635921955109,0.346477583982050418854,0.7867635409347712993622,\
0.3745993338525295257568,0.3698633969761431217194,0.4212488224729895591736,\
0.3815477318130433559418,0.630106801167130470276,0.6527381357736885547638,\
0.4507121564820408821106,0.8059874209575355052948,0.0838774070143699645996,\
0.0486886971630156040192,0.091624463908374309540,0.2564150630496442317963,\
0.4653418269008398056030,0.2816926469095051288605,0.5845362627878785133362,\
0.4137441064231097698212,0.8090988881886005401611}

#define ZI2 {0.6393490717746317386627,0.805427453480660915375,0.1889523915015161037445,\
0.9860434997826814651489,0.1705104154534637928009,0.5185149358585476875305,\
0.2712999242357909679413,0.1075414568185806274414,0.9200236895121634006500,\
0.0489821014925837516785,0.3230310245417058467865,0.7714011203497648239136,\
0.7943310593254864215851,0.0943802008405327796936,0.1643108497373759746552,\
0.6183919720351696014404,0.1516798050142824649811,0.8934515854343771934509,\
0.7921462929807603359222,0.1680600438266992568970,0.7106916573829948902130,\
0.4711248250678181648254,0.5770412567071616649628,0.4025902226567268371582,\
0.8710415088571608066559,0.1784316999837756156921,0.481136301066726446152,\
0.0674654301255941390991,0.0399954994209110736847,0.2460960680618882179260,\
0.6415826673619449138641,0.1576726771891117095947,0.0585584775544703006744,\
0.5705446070060133934021,0.1629006764851510524750,0.5582059938460588455200,\
0.3209808361716568470001,0.4510894315317273139954,0.4620725023560225963593,\
0.3076162338256835937500,0.6813747235573828220367,0.4970325855538249015808,\
0.0101193203590810298920,0.4533577542752027511597,0.7411896293051540851593,\
0.4234424093738198280334,0.8139128307811915874481,0.9676819704473018646240,\
0.6112973452545702457428,0.9543517818674445152283,0.4819711572490632534027,\
0.6928277853876352310181,0.7424363014288246631622,0.5521282376721501350403,\
0.217989120166748762131,0.7842588946223258972168,0.9177652769722044467926,\
0.1917659593746066093445,0.5858528851531445980072,0.6206979658454656600952,\
0.0012764860875904560089,0.8988496446982026100159,0.3898889864794909954071,\
0.6497076936066150665283,0.5358180389739573001862,0.2699402486905455589294,\
0.514097725506871938705,0.1375687289983034133911,0.7844757777638733386993,\
0.6941326009109616279602,0.0641209441237151622772,0.2922044843435287475586,\
0.3090644874610006809235,0.4945348976179957389832,0.6556941731832921504974,\
0.7279028128832578659058,0.6794784818775951862335,0.7084200689569115638733,\
0.1933331559412181377411,0.7405845634639263153076,0.4076515645720064640045,\
0.7247990211471915245056,0.9830047464929521083832,0.3623690102249383926392,\
0.6998763647861778736115,0.4981657536700367927551,0.5225321832112967967987,\
0.6641861572861671447754,0.1212330483831465244293,0.5571643514558672904968,\
0.8134847371838986873627,0.275185918435454368591,0.7658774037845432758331,\
0.5269278520718216896057,0.5383017356507480144501,0.5876941718161106109619,\
0.0269383029080927371979,0.3838389879092574119568,0.9464009604416787624359,\
0.6164656896144151687622,0.5597745371051132678986,0.1614628033712506294250,\
0.7930214214138686656952,0.9809839427471160888672,0.5323410280980169773102,\
0.3264011470600962638855,0.1745505048893392086029,0.9795577805489301681519,\
0.7564144139178097248077,0.5428190389648079872131,0.6040854970924556255341,\
0.2239649854600429534912,0.7934280098415911197662,0.0443929126486182212830,\
0.1709794825874269008636,0.8033927027136087417603,0.6286661443300545215607,\
0.3324307324364781379700,0.1281216177158057689667,0.4464247450232505798340,\
0.0075678699649870395660,0.4189139856025576591492,0.7507017790339887142181,\
0.64982577227056026459,0.0278900493867695331573,0.3332115495577454566956,\
0.8102095867507159709930,0.2428723461925983428955,0.0814798162318766117096,\
0.1112154340371489524841,0.5074178031645715236664,0.3559808600693941116333,\
0.7394064110703766345978,0.9856483982875943183899,0.2081001061014831066132,\
0.2623823434114456176758,0.6742023923434317111969,0.9962934432551264762878,\
0.8252332373522222042084,0.0615941416472196578979,0.2129642223007977008820,\
0.7388951787725090980530,0.1914335261099040508270,0.6734384708106517791748,\
0.6150622279383242130280,0.4714830657467246055603,0.2653777874074876308441,\
0.1113578472286462783813,0.6682099369354546070099,0.2968665333464741706848,\
0.5159585955552756786346,0.5037773922085762023926,0.6966427885927259922028,\
0.6400519711896777153015,0.3279239325784146785736,0.8322640117257833480835,\
0.5751562197692692279816,0.7393315965309739112854,0.7727512116543948650360,\
0.8552324511110782623291,0.8427531258203089237213,0.3697941964492201805115,\
0.5885056755505502223969,0.185948224738240242004,0.5096506965346634387970,\
0.5180077450349926948547,0.7124331700615584850311,0.9935774207115173339844,\
0.6513966270722448825836,0.2266238955780863761902,0.2100372924469411373138,\
0.296033380553126335144,0.3838447039015591144562,0.3276543477550148963928,\
0.9443909148685634136200,0.3133702538907527923584,0.3127397657372057437897,\
0.2831690898165106773376,0.8294320828281342983246,0.8504734281450510025024,\
0.0516620394773781299591,0.8521665157750248908997,0.0109942886047065258026,\
0.1777968332171440124512,0.9020808511413633823395,0.8023654175922274589539,\
0.8193211196921765804291,0.3788971211761236190796,0.2892677118070423603058,\
0.3856688523665070533752,0.8368152822367846965790,0.6335147209465503692627,\
0.0478187785483896732330,0.7960498845204710960388,0.9247719994746148586273,\
0.4049517679959535598755,0.1505366903729736804962,0.3286092029884457588196,\
0.5528467851690948009491,0.0004969090223312377930}

#define ZResR {-0.4532760601370298680912,0.2328568279348733338630,-0.0721739248448070302988,\
-0.7606257532599224324699,-0.0286009079979238634017,0.0446282927443572285942,\
-0.1676194364050221097262,0.6500285865688182340705,0.3126717730334664935299,\
0.4412835685735998492163,-0.0863853232804955989410,0.2599876176861364296400,\
-0.3081394309018399835232,0.5483498039081077246593,-0.0280685784873250555871,\
0.1103398428388524532551,0.1878638951594227557429,0.0489837078099595035763,\
0.0544579030846000788912,0.4870763078789703826033,-0.2608486317663467612959,\
-0.2619676674188661236187,-0.4486176628283578549095,-0.1699076965638988134799,\
0.0226500810131932545088,0.2525187524366853675239,-0.2962492545486477002470,\
0.0050349784816676457222,0.0478668812844439128806,-0.161512306092542023972,\
-0.0833553662573387199597,-0.0096347091494573405823,0.1892857042353479901653,\
-0.1078039385912064745954,0.0714942955946598623918,0.0393949194957836229536,\
-0.1400294459234943666992,-0.2723485697759917556482,-0.1406631695056576036862,\
-0.0914284063414464026609,0.0718601543879791859748,-0.0502555196723774022516,\
0.3308392578597269539920,0.3889296718119258922108,-0.5194079193768161850642,\
-0.2709799400469976582428,-0.3469689150581814485186,0.4051294378302779941592,\
-0.5157677188576927918007,0.0956281317726613566688,-0.2950104262230037743819,\
0.2475225041547986504220,0.0416670917625362458026,-0.0931174729511790588710,\
-0.0693836181169946164538,0.0251979011091364446528,0.1749033102248601090345,\
-0.1036931245422025305025,-0.1494776851046086263430,-0.4129188753992821814265,\
0.0956892042125161157440,-0.381500629131777346803,-0.0834984180348100207825,\
-0.1258676160077962236095,-0.0938063966240257895990,0.1573017568314179215339,\
0.0850675970242064927174,-0.0127169319676398440144,0.3215644924894006106975,\
0.1725016235865347580258,0.0657245842114690947966,-0.0091973641655471172207,\
0.0645495682688117383696,0.2199842886414065112888,-0.4594590945201037501811,\
-0.0076146572424504455068,-0.2255298228492429168934,-0.0089042461759258062504,\
0.3492561737977078473172,-0.2991314773617905764524,0.2705755498034173589517,\
-0.5188001861108486600926,0.5618831798406120903167,-0.2592918419562091347785,\
-0.4273656804273420206641,-0.4233085641525572428989,0.1726206665681528085177,\
-0.0713880252688461475197,0.0409534431553852107388,-0.4784636138374023794917,\
0.2528249080775029078438,-0.0751963670383180432522,-0.2099825350036476079296,\
0.3930475624040330462350,-0.0536983488983542034401,0.4696177809171224182272,\
0.4499246289866181136574,-0.1184924563459542473653,0.4455130076495959490224,\
0.0137745535065977864342,0.0572770873632376664730,0.4028010939579977911507,\
-0.5479035230736655215367,-0.8476656355498256578684,-0.4152860994745538603112,\
-0.1719656910372130420583,0.1500796339609139773419,-0.3508489918077146718645,\
0.0007517730549635760762,-0.0093318934652646470806,-0.4253349873439855599599,\
0.2806279433177717441694,-0.1888983413465122329633,0.7064426647296654371289,\
-0.0608123808038953800326,-0.0613171594896803062724,-0.4505394490178394883984,\
-0.0037858539492685930328,0.2097666454331615359941,-0.0211842001217234093824,\
0.0527063906668108692055,0.0768025778411403764467,0.8585738883942192201104,\
0.1759375052405339756589,0.0503612958523844411740,-0.2721751218561426211018,\
-0.0864544627613991201187,-0.0103374763464706836968,0.1595894682913722162354,\
0.1366255514725323583214,-0.1808181983112125135182,0.6659753695010871554771,\
-0.3552522431189574225741,-0.6660760695837163458677,0.0122680731984931845613,\
-0.1501265897279337457881,-0.1506290509488406037519,-0.3872440085463784154030,\
-0.3642683937636469471144,0.3554966732726081435345,0.1798988824024553845327,\
-0.5353736140053680925277,0.3328780019103673160075,-0.3831916918313129638562,\
-0.1334464728224985796690,-0.2528584112494918212377,0.0776621078396230318797,\
0.6042048881391237635796,0.0542925615451090859409,0.0152869439779466861906,\
-0.2578916798676885169250,0.6210074811527457327998,0.0697480566005716229316,\
-0.5360219400392558508628,-0.0164769465814076573884,0.2578547191709110730784,\
0.2692458480889036165351,0.2164281534628332004377,-0.2165469974967820787626,\
-0.6114963430660671495076,-0.3276202230479545729480,-0.1532470446853400614096,\
-0.5711409136688807564042,0.1041463421049710486033,-0.3894804137321275505634,\
-0.3320104464777595687508,-0.4043603275945338859643,-0.7061983397762294778488,\
0.563118573862244065076,-0.104052368330380548556,0.0164178824827940009201,\
-0.0912715036235035442891,-0.0802371510589425240845,-0.0399581838468483496740,\
-0.1945912294495280026041,0.5793779114170104493908,0.0565281114058220068852,\
-0.0343252140979214692695,-0.4239568198880452332133,-0.4604615564320009846178,\
0.4166399479456509569175,0.0131813866470892881999,0.3736222424672819841796,\
-0.0991373897615358684599,0.2529810514946274069281,0.0689311545837876515908,\
0.2497484491434210918115,0.1002341291998606193081,-0.1945593262740688278445,\
0.2527651998409092271025,-0.3858322501194685338888,-0.3391363400421857909883,\
0.0090761661352664196878,-0.5771490540989443474018,-0.4845995748950238657393,\
-0.0464806889926007715808,0.1478644355329177817460,-0.0455521984464080931243,\
0.0072729334007000101536,0.5914465599501286252604}

#define ZResI {0.6867532750160018073515,0.9613302788463532477792,0.1837939587530955376504,\
0.6396229422193046021405,0.2118940797572615719613,0.2758431416829634774679,\
0.0801773911552379342504,0.8704396947843597853733,0.6857529536617394949616,\
0.2682798733548960590234,0.265520729527220722410,1.3002525570030343260441,\
1.22341111147360948053,0.2823894734241773618599,0.0830507125337052176661,\
1.4084050938175196598934,0.4714708444194484759926,0.3864899878199242189147,\
0.578671353512100639094,0.4097343720866399863212,0.2871862109036796839590,\
0.4339746194558397052177,0.2190944030815045462379,0.1905148747457021396468,\
0.6580570072675409054597,0.4661869040666266617023,0.8599269442495538484650,\
0.0264043433044500661100,0.0516749566895557260748,0.4191162112725183019890,\
0.6380079192550233146974,0.0528761984310826271827,0.1750249364921274419782,\
0.262006263440240305673,0.2551006766112977608429,0.3726589610422177956117,\
0.2688345275772468512265,0.0399340736448891148180,0.1540820834002836481336,\
0.2363839254618368690419,0.5686876044589181944389,0.8679966059615636941871,\
0.0514995744434985636140,0.9745475763214328512873,0.6398586919691986452108,\
0.87003041421366145158,0.5098556345730298478003,0.7918453871370533247998,\
0.3977293850986994838692,0.4690074760926845609532,0.3456862982279912954731,\
0.8775057294133996599328,0.8415504958063240170674,0.6158257382443957927975,\
0.3254403835162152369698,0.3092837496266652719257,1.016502867475419513710,\
0.1377386626241807465743,1.0887841690471091737891,0.4545278067154325807309,\
0.3441598726430060706249,0.5306377190646557329146,0.4023845929152815026342,\
0.4125675613624649740174,0.2054662834722358610851,0.6177146421590287150849,\
0.6484264545005361535246,0.8358924918092586198171,0.5951731030444011860681,\
1.4105647290575316077366,0.2564640348596678998128,0.7845236225889706815906,\
0.1082954403048045077806,0.2214325174472631663214,0.5867100045537700925280,\
0.5180978688180153390874,0.3195153417190086386768,0.7488602710128838824133,\
0.1203597942708250490007,0.5012941523009060151850,0.7748826592461299789250,\
0.4421661217651661757166,0.9277146921619219277488,0.5611941617833399176263,\
0.1875332458457515116823,0.3141666438540002825874,0.4604943819421867812203,\
0.0857080651661168146926,0.3208952842499418478539,0.4512919342037237102616,\
0.7790380828723415529424,0.2761644904057471983094,0.5650186739065693464212,\
0.4507563807256466659190,0.2078905437719839599531,0.5277912987547750400807,\
0.3716354279518757630640,0.5373704615276944096536,0.9780785319295863811107,\
0.0159155946349303842324,1.0224311029322552535348,0.5264940700384401761625,\
0.7343311398624580155214,0.3704907408839669402667,0.5288385630587791874646,\
0.3959302386908920556863,0.7086176744936288907084,0.7694711035408567934013,\
0.7356001732724122277318,0.0399627592998382727418,0.5185668150213963434325,\
0.1331315821040593705415,0.8170027538591018156922,0.4049310194334793111537,\
0.1478937773069877170684,0.7786469990644202532337,0.9289400296531356016061,\
0.1371829990074564797897,0.1749929113926765866793,0.2441898291613232296893,\
0.0986799128052451290927,0.2473569799851849937422,0.9160542553812340837993,\
0.6487987635563003951944,0.1266499083655910351531,0.4604910075393342516747,\
0.9425690210228523380209,0.4054098304412955267040,0.3282910877920472980662,\
0.0998424092123958162315,0.2184385926591740634262,0.656067713825576603881,\
0.7653872511944090906155,0.7951531282252717325321,0.2947609930653066756534,\
0.2061139089866899365422,0.4764220642520822779353,1.3759775156473299518,\
0.8528204157327108347886,0.2443691207681686350384,0.2914758305179087627401,\
0.5616697707438699227467,0.5342831779243247813938,0.5173303887471423223587,\
0.0400423211013342383868,0.1734081126603988776136,0.0356373465889542606622,\
0.9647518864037544217283,0.4797428841650468456237,0.2788760702578375605398,\
0.5426811930882043943924,0.9529428659076060181832,0.519214160106206801260,\
0.1566372908148228326741,0.1800568943774761565546,0.8597000721649141752323,\
0.5941980612955533036512,0.4200596294318775236754,1.3834337451293550191878,\
0.7486653540997223466036,0.3094005426987578855069,0.2238402297126847184661,\
0.2351212641216636478614,0.1935041961305615509925,0.3283396534211000528103,\
0.6414187863585038007486,0.5517671615629442527506,1.1984678562974182547407,\
0.7432168383550731283194,0.2430428408595447509200,0.1037376614284659104293,\
0.6710156827233160203861,0.6483185566975374625187,0.2790420045943993176962,\
1.4677304745898491766809,0.2490552602808134563528,0.4239289487649033905114,\
0.5743412264612666184860,0.6998750389577383934636,1.0888059617925907041069,\
0.5637897941342366880946,0.9467997907854363015545,0.1529839243771335122180,\
0.3341914410029577231498,0.7977632654942472534287,0.6513779279028111268701,\
0.8229411301591347260853,0.2061183797708181497654,0.5470771267862610809374,\
0.5931748546354166373717,0.6677576209776094895432,0.6191412908370578227490,\
0.0728435968768978286958,0.1327083570997977524097,0.3079385977540891605742,\
0.6658977419097338312781,0.1203493812224817605117,0.4806090008275944458482,\
0.5912434516954661045673,0.7532244855713678965969}



static void smulsTest(void){
  float P1[]=FP1;
  float P2[]=FP2;
  float Res[]=FRes;
  int i=0;
  float out;

  for (i=0;i<200;i++){
	out = smuls(P1[i],P2[i]);
	assert( ( fabs(out-Res[i]) / fabs(out) ) <1e-6);
  }
}


static void dmulsTest(void){
  double P1[]=DP1;
  double P2[]=DP2;
  double Res[]=DRes;
  int i=0;
  double out;

  for (i=0;i<200;i++){
	out = dmuls(P1[i],P2[i]);
	assert( ( fabs(out-Res[i]) / fabs(out) ) <3e-16);
  }	
}


static void cmulsTest(void){
  float P1_R[] = CR1;
  float P1_I[] = CI1;
  float P2_R[] = CR2;
  float P2_I[] = CI2;
  float Res_R[] = CResR;
  float Res_I[] = CResI;
  int i=0;
  floatComplex in1,in2,out;

  for (i=0;i<200;i++){
	in1=FloatComplex(P1_R[i],P1_I[i]);
	in2=FloatComplex(P2_R[i],P2_I[i]);
	out=cmuls(in1,in2);
	assert( ( fabs(creals(out)-Res_R[i]) / fabs(creals(out)) ) <3e-6);
	assert( ( fabs(cimags(out)-Res_I[i]) / fabs(cimags(out)) ) <1e-6);
  }	
}


static void zmulsTest(void){
  double P1_R[] = ZR1;
  double P1_I[] = ZI1;
  double P2_R[] = ZR2;
  double P2_I[] = ZI2;
  double Res_R[] = ZResR;
  double Res_I[] = ZResI;
  int i=0;
  doubleComplex in1,in2,out;

  for (i=0;i<200;i++){
	in1=DoubleComplex(P1_R[i],P1_I[i]);
	in2=DoubleComplex(P2_R[i],P2_I[i]);
	out=zmuls(in1,in2);
	assert( ( fabs(zreals(out)-Res_R[i]) / fabs(zreals(out)) ) <3e-15);
	assert( ( fabs(zimags(out)-Res_I[i]) / fabs(zimags(out)) ) <3e-15);
  }
}


static void smulaTest(void){
  float P1[]=FP1;
  float P2[]=FP2;
  float Res[]=FRes;
  int i=0;
  float out[200];

  smula(P1,P2,200,out);
  for(i=0;i<200;i++){
	assert( ( fabs(out[i]-Res[i]) / fabs(out[i]) ) <1e-6);
  }	
}


static void dmulaTest(void){
  double P1[]=DP1;
  double P2[]=DP2;
  double Res[]=DRes;
  int i=0;
  double out[200];

  dmula(P1,P2,200,out);
  for(i=0;i<200;i++){
	assert( ( fabs(out[i]-Res[i]) / fabs(out[i]) ) <1e-16);
  }	
}


static void cmulaTest(void){
  float P1_R[] = CR1;
  float P1_I[] = CI1;
  float P2_R[] = CR2;
  float P2_I[] = CI2;
  float Res_R[] = CResR;
  float Res_I[] = CResI;
  int i=0;
  floatComplex in1[200],in2[200],out[200];	

  for (i=0;i<200;i++){
	in1[i]=FloatComplex(P1_R[i],P1_I[i]);
	in2[i]=FloatComplex(P2_R[i],P2_I[i]);
  }
  
  cmula(in1,in2,200,out);
  for (i=0;i<200;i++){
  	assert( ( fabs(creals(out[i])-Res_R[i]) / fabs(creals(out[i])) ) <3e-6);
  	assert( ( fabs(cimags(out[i])-Res_I[i]) / fabs(cimags(out[i])) ) <1e-6);
  }
}


static void zmulaTest(void){
  double P1_R[] = ZR1;
  double P1_I[] = ZI1;
  double P2_R[] = ZR2;
  double P2_I[] = ZI2;
  double Res_R[] = ZResR;
  double Res_I[] = ZResI;
  int i=0;
  doubleComplex in1[200],in2[200],out[200];	

  for (i=0;i<200;i++){
	in1[i]=DoubleComplex(P1_R[i],P1_I[i]);
	in2[i]=DoubleComplex(P2_R[i],P2_I[i]);
  }
  
  zmula(in1,in2,200,out);
  for (i=0;i<200;i++){
  	assert( ( fabs(zreals(out[i])-Res_R[i]) / fabs(zreals(out[i])) ) <3e-15);
  	assert( ( fabs(zimags(out[i])-Res_I[i]) / fabs(zimags(out[i])) ) <3e-15);
  }
}



static int testMult(void) {
  smulsTest();
  dmulsTest();
  cmulsTest();
  zmulsTest();
  smulaTest();
  dmulaTest();
  cmulaTest();
  zmulaTest();
  return 0;
}



int main(void) {
  assert(testMult() == 0);
  return 0;
}