http://git-wip-us.apache.org/repos/asf/incubator-milagro-crypto-c/blob/8d28d2c3/testVectors/fp/test_vector_BLS383.txt
----------------------------------------------------------------------
diff --git a/testVectors/fp/test_vector_BLS383.txt 
b/testVectors/fp/test_vector_BLS383.txt
new file mode 100644
index 0000000..a52c592
--- /dev/null
+++ b/testVectors/fp/test_vector_BLS383.txt
@@ -0,0 +1,161 @@
+# FP ARITHMETICS - CURVE: BLS383, Modulo = 
0x5565569564ab6eb5a06dadc41fea9284a0ad462cf365a511ac31b801696124f47a8c3f298a64852bda371d6485aab0ab,
 BIGmax = 2^383
+
+#test1
+FP_1 = 
0CD1AC43536662521908F0A33391651457A2FAE4FFF9A31FB0C570F22BB83E18290B71132CA9D6CC7EBD6F4E03ACF169
+FP_2 = 
17C2B57E79B90E495B8155FE0D31915BBB3D015F3CB860938090E169FA18B876AC81F93FA781A424F24E489B86D8F751
+FPadd = 
249461C1CD1F709B748A46A140C2F67012DFFC443CB203B33156525C25D0F68ED58D6A52D42B7AF1710BB7E98A85E8BA
+FPsub = 
4A744D5A3E58C2BE5DF54869464A663D3D133FB2B6A6E79DDC6647899B00AA95F715B6FD0F8CB7D366A64417027EAAC3
+FP_1nres = 
0CD1AC43536662521908F0A33391651457A2FAE4FFF9A31FB0C570F22BB83E18290B71132CA9D6CC7EBD6F4E03ACF169
+FP_2nres = 
17C2B57E79B90E495B8155FE0D31915BBB3D015F3CB860938090E169FA18B876AC81F93FA781A424F24E489B86D8F751
+FPmulmod = 
381B4CECB9936B9354AC70977AF1998230C8D1724FB1E93FF89C1A5A8488463BCAE20DF8FA0FBAB4803E21F74552227A
+FPsmallmul = 
2ACB640BDD54687F59EBB89BE3C36046CBB086C50C5ABA2B3B84B1744BD147FD1FE62B96343DDED1192F3BA79F16BD6F
+FPsqr = 
1617CC1739AF7E054DF94542A36A1E02679833B84948217EE250D1571D28CCC14229667F8E2B4F46544E1C04B0FEA9C2
+FPreduce = 
0CD1AC43536662521908F0A33391651457A2FAE4FFF9A31FB0C570F22BB83E18290B71132CA9D6CC7EBD6F4E03ACF169
+FPneg = 
4893AA5211450C638764BD20EC592D70490A4B47F36C01F1FB6C470F3DA8E6DC5180CE165DBAAE5F5B79AE1681FDBF42
+FPdiv2 = 
311B816C5C08E883DCBB4F33A9BDFBCC7C282088F9AFA418AE7B9479CA8CB18651CBD81E5B872DFC2C7A465944ABD10A
+FPinv = 
430BC4A505129A3C92628B7AACCF38AD6CB503A5C91744EAFE4883BA1DBF0C75CC0AF3190CF67BD939123F8AAC5EF054
+FPexp = 
22075B57D6E833F40116B74900D3D6DE0692AF56EEBDA839DEA2B6A51CCBF9CB7405A3B2629B9AC3BF196A9FA41B8006
+
+#test2
+FP_1 = 
16EF958D0863EBBD0187C86FBB030D2F3B6A1B210838391556AC95F2B124030459E6A1AD6037A9711B1EC9E7B252FD58
+FP_2 = 
5496949FE17024A14AD767EC30926B699E4CED00CA5A39834E8A981A86828C6B64B12661443216958009E917EF079263
+FPadd = 
1620D3978528A1A8ABF18297CBAAE6143909C1F4DF2CCD86F905760BCE456A7B440B88E51A053ADAC0F1959B1BAFDF10
+FPsub = 
17BE57828B9F35D1571E0E47AA5B344A3DCA744D3143A4A3B453B5D994029B8D6FC1BA75A66A1807754BFE3448F61BA0
+FP_1nres = 
16EF958D0863EBBD0187C86FBB030D2F3B6A1B210838391556AC95F2B124030459E6A1AD6037A9711B1EC9E7B252FD58
+FP_2nres = 
5496949FE17024A14AD767EC30926B699E4CED00CA5A39834E8A981A86828C6B64B12661443216958009E917EF079263
+FPmulmod = 
0587B32DDC371912897C1408415F846C4E1B1DB141FE741A43ACD7A3364E801E8CD0A15A40A9DC70E4463BC8274C3EB0
+FPsmallmul = 
3A912A578A9057F6CE7278D50E495ECF10CA82F06B66F0B20A5A6B7818A5D4428DE9D272AD6394135AC5A843EBE8841A
+FPsqr = 
4BF513AF53E3125DD0ACC74EF3F73E16CE36A85118657BFBD6F8B1B0BB00C542AD232A56217DDEF882286EF5E458D984
+FPreduce = 
16EF958D0863EBBD0187C86FBB030D2F3B6A1B210838391556AC95F2B124030459E6A1AD6037A9711B1EC9E7B252FD58
+FPneg = 
3E75C1085C4782F89EE5E55464E7855565432B0BEB2D6BFC5585220EB83D21F020A59D7C2A2CDBBABF18537CD357B353
+FPdiv2 = 
0B77CAC68431F5DE80C3E437DD8186979DB50D90841C1C8AAB564AF9589201822CF350D6B01BD4B88D8F64F3D9297EAC
+FPinv = 
50ABAEC4EE05B307F751DF585526249B1DFC24E4E73A5EF123C0877D274C0511E5AE0F45A24D20CD320673DE694C5E99
+FPexp = 
10F8959B2D1979E9E53D8D24F7993F8192D6C302D8CA11D82F312611A83E5A19FD5A7F048B42C91E1505EE873C5A40B2
+
+#test3
+FP_1 = 
0AFFA91F1AD9A3ACAD2642AD1747E2E04BA64A075ADE1679731E83524938D5D95CF69FDF947A3BC98281E05757FE0537
+FP_2 = 
40391A780264E5C9F4400937EFFC363EF578F779BDC20556A6953145553A520DB4F3D4BA198558826689BE43DC37226A
+FPadd = 
4B38C3971D3E8976A1664BE50744191F411F418118A01BD019B3B4979E7327E711EA7499ADFF944BE90B9E9B343527A1
+FPsub = 
202BE53C7D202C985953E73947363F25F6DA98BA9081B63478BB0A0E5D5FA8C0228F0A4F05596872F62F3F7801719378
+FP_1nres = 
0AFFA91F1AD9A3ACAD2642AD1747E2E04BA64A075ADE1679731E83524938D5D95CF69FDF947A3BC98281E05757FE0537
+FP_2nres = 
40391A780264E5C9F4400937EFFC363EF578F779BDC20556A6953145553A520DB4F3D4BA198558826689BE43DC37226A
+FPmulmod = 
50DDAF8C766362FB81F3E5FC0EA304394B9E943D0152BDC6FB9AB1D79768D1FEFAF85BD2CAF1E2E11DB64B83A0FAC737
+FPsmallmul = 
189744A1A7D4F6092310ECFEC8E44A3E53D19E1C99473BACD2FF693572D735892715FF924261D0B33EDBA604EA41837B
+FPsqr = 
1FC6E5F5F216772156229D54A0B3051833B945C1FDA2AE71F1E0F42D66FA6928B003E2316519A0BDF436975680D849D6
+FPreduce = 
0AFFA91F1AD9A3ACAD2642AD1747E2E04BA64A075ADE1679731E83524938D5D95CF69FDF947A3BC98281E05757FE0537
+FPneg = 
4A65AD7649D1CB08F3476B1708A2AFA45506FC2598878E98391334AF20284F1B1D959F49F5EA496257B53D0D2DACAB74
+FPdiv2 = 
30327FDA3FC2893126C9F8389B993AB27629C81A2721DDC58FA81DA9D94CFD66EBC16F848F6F607AAE5C7EDDEED45AF1
+FPinv = 
0F54430A314936A057BF7A197768F337225386773DD89D252EB90965AE59DA8FA48EE00D04962F72DDAA25C89F9DE391
+FPexp = 
3D419E4CFECDBEF83DF7512DE6992DD3F0302EAB9BE2EBDA6758775A447B60D3E39B8ECD42A925F3A19E7DAE5FE81E66
+
+#test4
+FP_1 = 
1B6EAAD4A80281594B91888D2990F2726FEACFFF8AEEA164F1EA745127BEF8B253BB06665DF1AC4BAC7C60F112A36DC6
+FP_2 = 
1FC885A9AFF1EF860006045DE7913FCEF8B85F93C54D478090F62763BC073856C98B6344433B7BC60933CDDB5E4819FD
+FPadd = 
3B37307E57F470DF4B978CEB1122324168A32F93503BE8E582E09BB4E3C631091D4669AAA12D2811B5B02ECC70EB87C3
+FPsub = 
510B7BC05CBC0088EBF931F361EA452817DFB698B906FEF60D2604EED518E55004BBE24BA51AB5B17D7FB07A3A060474
+FP_1nres = 
1B6EAAD4A80281594B91888D2990F2726FEACFFF8AEEA164F1EA745127BEF8B253BB06665DF1AC4BAC7C60F112A36DC6
+FP_2nres = 
1FC885A9AFF1EF860006045DE7913FCEF8B85F93C54D478090F62763BC073856C98B6344433B7BC60933CDDB5E4819FD
+FPmulmod = 
3F558C92CA3CBB9925770F5F0A4B6F44B992F111498A357967F9E5994DD125DDB77D95D1BCE7F2D554D03291D572E256
+FPsmallmul = 
1222A88E6216C15C12664C373FE9C0EA7D244D7493215EBC6E93632751524819D5A982830C432B712E36713D296237BB
+FPsqr = 
3FF2EAA099CF018FD24EE57E91DC46AF9A994748D2EFC2610D66F46DD8668EE7D7254CDC775F291DCBF47A9115345678
+FPreduce = 
1B6EAAD4A80281594B91888D2990F2726FEACFFF8AEEA164F1EA745127BEF8B253BB06665DF1AC4BAC7C60F112A36DC6
+FPneg = 
39F6ABC0BCA8ED5C54DC2536F659A01230C2762D687703ACBA4743B041A22C4226D138C32C72D8E02DBABC73730742E5
+FPdiv2 = 
0DB7556A540140ACA5C8C44694C8793937F567FFC57750B278F53A2893DF7C5929DD83332EF8D625D63E30788951B6E3
+FPinv = 
37DAA63716C5505A408E7E0A3591B31EB4ECD9F65C421DC56CFB2E20650DE9BE8BE86F2AAA4F2B54CC6BD120445D6512
+FPexp = 
257484847015AACADFB53EE959B94E6C1DFF34A5AFFC211A7622A312D2129B5301CA67849CFB1EC4EDB339F8B0FC5EA9
+
+#test5
+FP_1 = 
32F63EC7FC55ED1C10785BC658B5696BD8F0F1CC4EA9CEE6E6F4AA3D415F953532FB03F181A531FA96ADC353157E0C51
+FP_2 = 
12A3CEB4886D8763454340952C538E4B18DAB88E3F27329724F34DF08A552938A1F292CD4819CF92B7908B9872CC670F
+FPadd = 
459A0D7C84C3747F55BB9C5B8508F7B6F1CBAA5A8DD1017E0BE7F82DCBB4BE6DD4ED96BEC9BF018D4E3E4EEB884A7360
+FPsub = 
2052701373E865B8CB351B312C61DB20C016393E0F829C4FC2015C4CB70A6BFC91087124398B6267DF1D37BAA2B1A542
+FP_1nres = 
32F63EC7FC55ED1C10785BC658B5696BD8F0F1CC4EA9CEE6E6F4AA3D415F953532FB03F181A531FA96ADC353157E0C51
+FP_2nres = 
12A3CEB4886D8763454340952C538E4B18DAB88E3F27329724F34DF08A552938A1F292CD4819CF92B7908B9872CC670F
+FPmulmod = 
086B053DD680BA615388A0AB83B8215E701A22E379B58527E6A6DB99B2CD2E7F5957992D359ACAC32E2D7349C297BF00
+FPsmallmul = 
52A3C2E4E402198C828F30EAD781419F5607131A51A5DBACA8960E5D7ED61B4D9910EB9F5C7D59EE9FB60E483A9707D3
+FPsqr = 
375456E430C7AE307261BA1F1CF8EB8A7804B8A1F3BBD11C54AB86A9E4685324FF8977DE6E4D3B554015E5EBF1B296BA
+FPreduce = 
32F63EC7FC55ED1C10785BC658B5696BD8F0F1CC4EA9CEE6E6F4AA3D415F953532FB03F181A531FA96ADC353157E0C51
+FPneg = 
226F17CD685581998FF551FDC7352918C7BC5460A4BBD62AC53D0DC428018FBF47913B3808BF533143895A11702CA45A
+FPdiv2 = 
442DCAAEB080ADE8D87304C53C4FFDF83CCF1BFCA107B9FC4993311F55605D14D6C3A18D8604DB933872705BCD945E7E
+FPinv = 
0182F37B786F3F02B64F2C135BDA3712ED15CBE0487D32EC29A1B133667554B6BEB2087B71FC3E9F40CF5E6E43791E6F
+FPexp = 
2408FC38AFFB1A8ABA16184C9C392A7CBE506F4300F1B2FE34BF8D69BD93FED3442641AD1E3723ACECCEAFFED144DDAA
+
+#test6
+FP_1 = 
3B216BCB3F5E5A0F7AF3C13C01AC05BBC124C7994C6D5DB98A9C280259B0886F199CC6F742A513FC224BA0B6729278EF
+FP_2 = 
20379C2071BF888A2E1F464E40D93D73293C47B64D2AE9351758FD8AD9EF832B1C85CFCDA0455B214D28020A817829D8
+FPadd = 
05F3B1564C7273E408A559C6229AB0AA49B3C922A632A1DCF5C36D8BCA3EE6A5BB96579B5885E9F1953C855C6E5FF21C
+FPsub = 
1AE9CFAACD9ED1854CD47AEDC0D2C84897E87FE2FF42748473432A777FC10543FD16F729A25FB8DAD5239EABF11A4F17
+FP_1nres = 
3B216BCB3F5E5A0F7AF3C13C01AC05BBC124C7994C6D5DB98A9C280259B0886F199CC6F742A513FC224BA0B6729278EF
+FP_2nres = 
20379C2071BF888A2E1F464E40D93D73293C47B64D2AE9351758FD8AD9EF832B1C85CFCDA0455B214D28020A817829D8
+FPmulmod = 
37651591279BCCB79C7C78C6A86822E5C472EAD9B9352CFF1CE3AB6822B58960D5003C1492D59607D997B31C00281A0A
+FPsmallmul = 
4EEE2E701DAAEC590AF379BF5138CA39C76026EF47E3CAD560EF400F089E769C20D64AAF5C17A8D239A996C557B89554
+FPsqr = 
53FF335541FC4AFBEF3291E433F41E4C5933BA42EECB7832B00FE5804119E90E062C26C6ECB7B0F527B35B403C13C35F
+FPreduce = 
3B216BCB3F5E5A0F7AF3C13C01AC05BBC124C7994C6D5DB98A9C280259B0886F199CC6F742A513FC224BA0B6729278EF
+FPneg = 
1A43EACA254D14A62579EC881E3E8CC8DF887E93A6F8475821958FFF0FB09C8560EF783247BF712FB7EB7CAE131837BC
+FPdiv2 = 
484361305204E4628DB0B78010CB4C2030E906E31FE981659B66F001E188D6B1CA1483106684CC93FE415F0D7C1E94CD
+FPinv = 
10BC50723F448A5FE34225A535CE750EC80968411D0C300D83D1C6625799AAC96DD0C0B32817A1C706080BA407AD61F9
+FPexp = 
38224CD878D0C4FC9E05A75A4DF6BBF64D570A5BD3A4FC5FB30DF793B42451080796841C342C685C1A7C3F632172BB41
+
+#test7
+FP_1 = 
27405DF5B60F8E64DF53E09D74103781712E1E00BE08259199FF0F17B7CB2B7987B7115EE1CE045B787CF8A430FEFD80
+FP_2 = 
069E0AFF0E28CD2D035A3026AF822258FDBEC9BC7A21A4C9ED980391C330CA648F5799A640F7E2A62A0989F713C9F947
+FPadd = 
2DDE68F4C4385B91E2AE10C4239259DA6EECE7BD3829CA5B879712A97AFBF5DE170EAB0522C5E701A286829B44C8F6C7
+FPsub = 
20A252F6A7E6C137DBF9B076C48E1528736F544443E680C7AC670B85F49A6114F85F77B8A0D621B54E736EAD1D350439
+FP_1nres = 
27405DF5B60F8E64DF53E09D74103781712E1E00BE08259199FF0F17B7CB2B7987B7115EE1CE045B787CF8A430FEFD80
+FP_2nres = 
069E0AFF0E28CD2D035A3026AF822258FDBEC9BC7A21A4C9ED980391C330CA648F5799A640F7E2A62A0989F713C9F947
+FPmulmod = 
3BA30F312616F1EF5B42A68BD9A9FFB9397FF97D8ED216197113F18A58F418A9E398CC8F6C75F9ED08DBF9BB7F862AF3
+FPsmallmul = 
32EE514389EDD51A37900F1608F7E0FBE91813539EBAE369532FB6E7886B1EED62F5B10EA87A16E34C0540D7D34B2454
+FPsqr = 
180A8A4297E358D773FEC3B5A48B5CD97755D331DF54A8BAA4DEFA578424A550EE933F89F4EA6DD37D439239BC2F9D67
+FPreduce = 
27405DF5B60F8E64DF53E09D74103781712E1E00BE08259199FF0F17B7CB2B7987B7115EE1CE045B787CF8A430FEFD80
+FPneg = 
2E24F89FAE9BE050C119CD26ABDA5B032F7F282C355D7F801232A8E9B195F97AF2D52DCAA89680D061BA24C054ABB32B
+FPdiv2 = 
13A02EFADB07C7326FA9F04EBA081BC0B8970F005F0412C8CCFF878BDBE595BCC3DB88AF70E7022DBC3E7C52187F7EC0
+FPinv = 
223D008A49870090227182A28B9DF3D6E98AD0E342A5DF065D69224B839116CE4C1E980790AFFF03621D53F4CF947578
+FPexp = 
1A86268FD0894D73317C1409736D7F57165861B704255B4D696ED98A29D788E622796851F5F0AE8508733B1DCCF09A14
+
+#test8
+FP_1 = 
132D1F7DDBBCC50134B347999AB5C623C0B53F454D433B441B1CD80CC3FE7E9D16C3757C529C2E66B3993EEE9CC0A219
+FP_2 = 
12542E124716AEDEC10303D6041EA714486193EB5B146DEB6C16589DF80AB42A4F7100693082ACD68300D14A55BEC2C5
+FPadd = 
25814D9022D373DFF5B64B6F9ED46D380916D330A857A92F873330AABC0932C7663475E5831EDB3D369A1038F27F64DE
+FPsub = 
D8F16B94A6162273B043C396971F0F7853AB59F22ECD58AF067F6ECBF3CA72C75275132219819030986DA44701DF54
+FP_1nres = 
132D1F7DDBBCC50134B347999AB5C623C0B53F454D433B441B1CD80CC3FE7E9D16C3757C529C2E66B3993EEE9CC0A219
+FP_2nres = 
12542E124716AEDEC10303D6041EA714486193EB5B146DEB6C16589DF80AB42A4F7100693082ACD68300D14A55BEC2C5
+FPmulmod = 
2E8BE3E1D421207FE4110C639FCEB69F5893095864F3271AD41929CBD76389C066B1D2E39BD76F6392B791BA4AE747A3
+FPsmallmul = 
14F88DBFCC08D4A0CE257077CB44985C45B9EC5B1DD50685B6BD007CD52EA839EE8A18882550C5AB4F8E3A891430F3A4
+FPsqr = 
28418DE26932090EB1A90B729DE7D84B4BCB4BECF6F41C6176D20D5DD36FD478785A32941A8FE194F1B87B2D78253ADF
+FPreduce = 
132D1F7DDBBCC50134B347999AB5C623C0B53F454D433B441B1CD80CC3FE7E9D16C3757C529C2E66B3993EEE9CC0A219
+FPneg = 
4238371788EEA9B46BBA662A8534CC60DFF806E7A62269CD9114DFF4A562A65763C8C9AD37C856C5269DDE75E8EA0E92
+FPdiv2 = 
34493B09A03419DB6A907AAEDD502C5430B142B92054702AE3A7480716AFD1C8C8A7DA52EE8059C946E82E299135A962
+FPinv = 
36EEBBD8E0D91DE9A4424F13DAF4E70701376149BD5DA7EBFEED3F6A69A3B4E73A275634CC3EAA04DD6EFA1C7D38FE4C
+FPexp = 
087DF208981D54F43D1F722B8850C645CA7931A42EA2A6F3F7CB08E8E142F0B4CC6A0881E399379C1FD1515E366283BE
+
+#test9
+FP_1 = 
496B1B5DF0E7023235972E3A8F84D1B45DFCCA7E71051CE065CF7D338E01B8CCEFDF23697FC288B674C0FDA6BBCDBF41
+FP_2 = 
3350ED9E45AD864220BF02FB2D630AF576F05FD7CD7F88EBE14E03269C01E03339CF2E34182D798AC6551DA849A258CE
+FPadd = 
2756B266D1E919BEB5E883719CFD4A25343FE4294B1F00BA9AEBC858C0A2740BAF2212740D8B7D1560DEFDEA7FC56764
+FPsub = 
161A2DBFAB397BF014D82B3F6221C6BEE70C6AA6A38593F484817A0CF1FFD899B60FF53567950F2BAE6BDFFE722B6673
+FP_1nres = 
496B1B5DF0E7023235972E3A8F84D1B45DFCCA7E71051CE065CF7D338E01B8CCEFDF23697FC288B674C0FDA6BBCDBF41
+FP_2nres = 
3350ED9E45AD864220BF02FB2D630AF576F05FD7CD7F88EBE14E03269C01E03339CF2E34182D798AC6551DA849A258CE
+FPmulmod = 
4A70B5BE31D49309595997634D9CA3D75E043A909227FA90F7524F9CEAA652F563184286CA9B0EDEA2D7761050510114
+FPsmallmul = 
33045D0043AAA049147A60289BDB9CE6A675B788CF05F836988D23F84108105D8A5568D2AA752DC1BDD0FD5F28B3F332
+FPsqr = 
163D0E124451F3DA7A7BB90259742FB7539C4054D17318FC89F688639C9DD99C0166FDA289A098864BB19F87930982E4
+FPreduce = 
496B1B5DF0E7023235972E3A8F84D1B45DFCCA7E71051CE065CF7D338E01B8CCEFDF23697FC288B674C0FDA6BBCDBF41
+FPneg = 
0BFA3B3773C46C836AD67F899065C0D042B07BAE8260883146623ACDDB5F6C278AAD1BC00AA1FC7565761FBDC9DCF16A
+FPdiv2 = 
4F6838F9AAC93873EB026DFF57B7B21C7F550855B23560F909009A9A7BB16EE0B535B149851386F1277C0D85A0BC37F6
+FPinv = 
0E8C4287D27B4ABB705E30E6E339EEA6E6FF137810B30C6293F74902C870B5A84CC147BC5BE8E54895007B8FACB0C6B0
+FPexp = 
3F3944381607CCCBEC249307ECD673BA45EBAA3A2E163170D064F5FE41507390D8CE59846F5BFA1AD846F10E050A0DA2
+
+#test10
+FP_1 = 
50D6E2A34A8F9900608970AE74EE7287D75C654D00BB27C824D877A533BB1B7F5235BC65E695C3FC550336EBDEAF3AD5
+FP_2 = 
084DE9733BA0E3FC9886D903EAA62549F2BFD6243E18BC7EF635EDAB6DEF459EE021825646885D8FC13AA3047469D802
+FPadd = 
03BF758121850E4758A29BEE3FAA054D296EF5444B6E3F356EDCAD4F38493C29B7CAFF92A2B99C603C06BC8BCD6E622C
+FPsub = 
4888F9300EEEB503C80297AA8A484D3DE49C8F28C2A26B492EA289F9C5CBD5E072143A0FA00D666C93C893E76A4562D3
+FP_1nres = 
50D6E2A34A8F9900608970AE74EE7287D75C654D00BB27C824D877A533BB1B7F5235BC65E695C3FC550336EBDEAF3AD5
+FP_2nres = 
084DE9733BA0E3FC9886D903EAA62549F2BFD6243E18BC7EF635EDAB6DEF459EE021825646885D8FC13AA3047469D802
+FPmulmod = 
203704B169079FE1F80A707FCC71BC3B15C685930F266A0B968AE0905B80F35927EBD24061F875646100896CDBEA4DA3
+FPsmallmul = 
27D4CF205F9515A121834AEB721152A4C3847D6D78BCC03262B5346750E4C660E72B23852450F950A6301CADFFD8164F
+FPsqr = 
0C2005FDDF62387607FAA01F55812215DA9C45111ECF9790EE868CE564CBA994378FF9244EAA5AE0D6467A13D4F93135
+FPreduce = 
50D6E2A34A8F9900608970AE74EE7287D75C654D00BB27C824D877A533BB1B7F5235BC65E695C3FC550336EBDEAF3AD5
+FPneg = 
048E73F21A1BD5B53FE43D15AAFC1FFCC950E0DFF2AA7D498759405C35A60975285682C3A3CEC12F8533E678A6FB75D6
+FPdiv2 = 
531E1C9C579D83DB007B8F394A6C82863C04D5BCFA10666CE88517D34E8E2039E660FDC7B87D2494179D2A28322CF5C0
+FPinv = 
15BD29235B1806035C1F03D2F066DA827A648D162AF045DE9415C575231BA1A219B2A2B30BB1F85955A2BBC34AB5522F
+FPexp = 
2D001DEDA92E95A8CBDB7811AFED8FE3B6AAA7934CB69EC886EE6B244A22D41F3BA82081241F5B817F454CA61CBF28CB

http://git-wip-us.apache.org/repos/asf/incubator-milagro-crypto-c/blob/8d28d2c3/testVectors/fp/test_vector_BLS461.txt
----------------------------------------------------------------------
diff --git a/testVectors/fp/test_vector_BLS461.txt 
b/testVectors/fp/test_vector_BLS461.txt
new file mode 100644
index 0000000..b018cc7
--- /dev/null
+++ b/testVectors/fp/test_vector_BLS461.txt
@@ -0,0 +1,161 @@
+# FP ARITHMETICS - CURVE: BLS461, Modulus = 
0x15555545554d5a555a55d69414935fbd6f1e32d8bacca47b14848b42a8dffa5c1cc00f26aa91557f00400020000555554aaaaaac0000aaaaaaab,
 BIGmax = 2^461
+
+#test1
+FP_1 = 
029A0A97D87322360C7F012C85CD275369CA7C109F8C865651F9EF06C8AAED213E425966ED9E77D35B0016C5D875CC7A4E6E34D193583632CE
+FP_2 = 
02EA6B87EA27302265745644E5443C29154F09EE41798BB44D2CC4ED46DB55988FBA0386AF293874291945D12A7039AA8B7829BD907A4D808177
+FPadd = 
02ED059281FFA3449B80D54611CA095068B8D46A5219183AA37EBEDC4DA40085B0F845E01616D6EBFC7445E7F048AF7705C697F2620DA5B6B445
+FPsub = 
126D83C802FE9D552AEDFF505BD4F0BBAD38F36689F2A54D1DA9C04468CD4FB0AE444DF96255BB82AA81BA659B6D91773980EF234119B5605C02
+FP_1nres = 
029A0A97D87322360C7F012C85CD275369CA7C109F8C865651F9EF06C8AAED213E425966ED9E77D35B0016C5D875CC7A4E6E34D193583632CE
+FP_2nres = 
02EA6B87EA27302265745644E5443C29154F09EE41798BB44D2CC4ED46DB55988FBA0386AF293874291945D12A7039AA8B7829BD907A4D808177
+FPmulmod = 
06C3DC3217BCB455CC9EFFD9C9542016130F90557355CD73B77E9D07DB53551CFCE6AEBBC8D7A87AED1072A6135CEF405D1D54671A2B62F51169
+FPsmallmul = 
1A0469EE747F561C7CF60BBD3A03894221E8D8A63B7D3F5F33C35643D6AD434C6E977E054830AE418E00E3BA7499FCC7104E102FC1721DFC0C
+FPsqr = 
025AA2957C66BD6399ABF9F952C4192ACD451FFCB8FE5282E0552D79604A421B72758B67E1560EBB9D4F05050665B2D72C4A18981FDFB825E9BE
+FPreduce = 
029A0A97D87322360C7F012C85CD275369CA7C109F8C865651F9EF06C8AAED213E425966ED9E77D35B0016C5D875CC7A4E6E34D193583632CE
+FPneg = 
1552BB3ABD74E73324495792E80D92961BB4685CAA2D17F4BE329153A2174F6EFB81CCCD43A3B7072CE500093A2CDF88D05C3C772E6D527477DD
+FPdiv2 = 
014D054BEC39911B063F809642E693A9B4E53E084FC6432B28FCF783645576909F212CB376CF3BE9AD800B62EC3AE63D27371A68C9AC1B1967
+FPinv = 
0679E37BD28D6AC65B66265B5E39EB341237568A1DE885B0414C640FE3923FBD952A2B24AA0DD7F538B0C51D41D3CA01CD3663FA6EB0456F827F
+FPexp = 
0F997A6E3A7A82AF4A1E680E0B2B909B54CA032657E127DF402FE608F985D0B251DE15B46DDAE949CF888719C2BCA5468DB80E10BCA33240513F
+
+#test2
+FP_1 = 
5A100B0E53C8E2BFD7F6CEDA8D81D7CF7EB1DA2323E9A2149FEE54EFF234265FFCC181960D9A53E2468A57A30ED48A6F70DF64328D127A4635
+FP_2 = 
06128DB780951631102382CBE0D72AFCC8CD9028C2ABE7DBF473A7C60601375FF1E745549808875F24EBC19F07EA2F6FCFD841D7F64804FA6B11
+FPadd = 
066C9DC28EE8DF13CFFB799ABB64ACD4984C4202E5CFD17E0913961AF5F36B8651E406D62E1621B307324BF6AAF903FA3F49213C28D51774B146
+FPsub = 
0F9CD798E30C0D070A0A4A970E49B69875CF548A1B44A64134B0D1D192D0F7228AD58B53A8966873BD9AC8D89B29FA6FEA4348383C45B82A85CF
+FP_1nres = 
5A100B0E53C8E2BFD7F6CEDA8D81D7CF7EB1DA2323E9A2149FEE54EFF234265FFCC181960D9A53E2468A57A30ED48A6F70DF64328D127A4635
+FP_2nres = 
06128DB780951631102382CBE0D72AFCC8CD9028C2ABE7DBF473A7C60601375FF1E745549808875F24EBC19F07EA2F6FCFD841D7F64804FA6B11
+FPmulmod = 
0DD61961F5E4E6336912DA6095F31C9BBF4572C36C2C2A5B32EC4C166B3C0AE88C77ECF3D35C138DE33087DE8DBC4754345F018A72B4378B458F
+FPsmallmul = 
0384A06E8F45D8DB7E6FA4148987126E1AF2F2855F672054CE3F4F515F76097FBFDF8F0FDC880746D6C1676C5E944D685A68B9E9F982B8C6BE12
+FPsqr = 
EFD767942F3013251AF253D7F73DA6BA1913D8DC3CF697A9B74665A0E9C83C7FF02D30C5AC0458402EFAC253EE97428F7E08C1BE4FF630A5BC
+FPreduce = 
5A100B0E53C8E2BFD7F6CEDA8D81D7CF7EB1DA2323E9A2149FEE54EFF234265FFCC181960D9A53E2468A57A30ED48A6F70DF64328D127A4635
+FPneg = 
14FB453A46F991729A7DDFC53A05DDE59F9F80FE97A8BAD8FFE49CEDB8EDC635BCC34DA51483BB2B1DF975C85CF680CADB39CB47CD7398306476
+FPdiv2 = 
0AD7B2A831D0919C0D16E6B1779070CA9F4E72596EF8470E94923CCBCC6917413E5E6854204F77E97143453BD18A14EFDD0DC5081946DE927870
+FPinv = 
0754296B300183BDC643AAD4933C822C8B85970651E5786C361DFC14F2081972EFF2E68FBB2ACFEAC146D6A958F8CD42F40EF7B426F2F6AA4C95
+FPexp = 
064B02EAFC321D3F7CEE9552B2864C621985E2376562D9A668E520FAA697154C2EEF8D9FD6AF55D40C4A52F24C4F38921388621B4FB63C91F91C
+
+#test3
+FP_1 = 
30F401B3D2F09BB11A6DFD68E7D68AA5C1C4432558DE71A244A85DB5CB7F0100BC6423D6C6C5B77C25AE100573D64D7807E08DD4CD3BBCE2E9
+FP_2 = 
03063F1CC5DCB743F4565BF1F35DA73182BEAFF23CCB640EB21592B3F828AFD9D9D272197CC786B1E6AB87C637641B5627BA7C64E401194FBA08
+FPadd = 
0337331E79AFA7DFA570C9EF5C457DBC2880743562244280545A3B11ADF42EDADA8ED63D538E4C6962D135D63CD7F1A39FC25CF2B8CE550C9CF1
+FPsub = 
12800A2A434393AD1719E89F8A1D8F1692214729A35A1EDE04B3A0EC6682C98343AA01310490948495BA2669CE15104C9AF80ED4F0CCCD17D38C
+FP_1nres = 
30F401B3D2F09BB11A6DFD68E7D68AA5C1C4432558DE71A244A85DB5CB7F0100BC6423D6C6C5B77C25AE100573D64D7807E08DD4CD3BBCE2E9
+FP_2nres = 
03063F1CC5DCB743F4565BF1F35DA73182BEAFF23CCB640EB21592B3F828AFD9D9D272197CC786B1E6AB87C637641B5627BA7C64E401194FBA08
+FPmulmod = 
129410A5999EF86E034C309A04C9B8A6712B06DF2BFA04A0A4624C575C2A72946F76A28EAC7D73C7B70A6C8D9F72DE185D3DC7A8226FF3446651
+FPsmallmul = 
01E98811063D6614EB084BE6190E616A7991AA9F7578B07056AE93A919F2F60A075BE96663C3B92AD978CCA036865F06B04EC58A50045560DD1A
+FPsqr = 
07E0D366106BB35F8C60D6C4D97C2AE31CF26BA481DBBEC0A661B791B1D6B9DE752D22068099A721AADCCA7E1F8E71754B09F4345FACC85A0931
+FPreduce = 
30F401B3D2F09BB11A6DFD68E7D68AA5C1C4432558DE71A244A85DB5CB7F0100BC6423D6C6C5B77C25AE100573D64D7807E08DD4CD3BBCE2E9
+FPneg = 
15246143A17A69B9A93B6896ABAB8932C95C6E959573C609723FE2E4F3147B5B1C03AB02D3CA8FC7841A520FFA917F07D2A2CA1E2B336EEDC7C2
+FPdiv2 = 
0AC324A38490257885B82248BEBD9B240A6FFB8DF012C1765B6499D02F55BCAE8EBE39A540AC0D9B3E32D71802BC95D16159459CEA66F333C6CA
+FPinv = 
126743C4E88D17DE8A84C6068F8EED88E6C16B829C1078911711E2DBD49633041017186BA6FA1F0B921AE7073346FCAEA0AE07F481B0385CF106
+FPexp = 
0BD041B24263B3E61DF14127A12B217A208544E36F5E7B1E5D92150BAD723882E9A09A09DFD20E0A5B445C5AF1F4E762D6E53513F1DAB654BD4C
+
+#test4
+FP_1 = 
01B3FA926AF604FDAAD199705972E39329A57C7C3C17AFFA984441CC8848F3D1D3135C41A4AE275DAE4D3F8C6497B724393FCFFCA094E4DAE081
+FP_2 = 
0B91C1CDF068B09D4F777C72FC466BBB0A36E2E0B628AD693B4A86A86B4D16B0FE2054C7DBD14753E31CEE068E12BA7581A2554E580F61851BE2
+FPadd = 
0D45BC605B5EB59AFA4915E355B94F4E33DC5F5CF2405D63D38EC874F3960A82D133B109807F6EB1916A2D92F2AA7199BAE2254AF8A4465FFC63
+FPsub = 
0B778E09CFDAAEB5B5AFF39171BFD7958E8CCC7440BBA70C717E4666C5DBD77CF1B316A0736E3588CB7051A5D68A52040248255A48862E006F4A
+FP_1nres = 
01B3FA926AF604FDAAD199705972E39329A57C7C3C17AFFA984441CC8848F3D1D3135C41A4AE275DAE4D3F8C6497B724393FCFFCA094E4DAE081
+FP_2nres = 
0B91C1CDF068B09D4F777C72FC466BBB0A36E2E0B628AD693B4A86A86B4D16B0FE2054C7DBD14753E31CEE068E12BA7581A2554E580F61851BE2
+FPmulmod = 
0FB884BC024182ABAFC083041F8BDC373404F2B0017DE07C93CB2F71B23F170C6A8798E166E609FE468E59E597B5F881B337BEE3741F1CEA2CA4
+FPsmallmul = 
1107C9B82D9C31E8AC2FFE637E7CE3BFA076DCDA58ECDFC9F2AA91FD52D986323EC19A906ECD89A8CF047B7BEDED276A3C7E1FDE45D0F08CC50A
+FPsqr = 
06F63AD94238E520DC2324E6963AD985F58D924D3A2196A7D504759BA06061F28AEFB0DDB6EBFA0EF9D535BD0A697F37FD8006F2C68CAD8823AB
+FPreduce = 
01B3FA926AF604FDAAD199705972E39329A57C7C3C17AFFA984441CC8848F3D1D3135C41A4AE275DAE4D3F8C6497B724393FCFFCA094E4DAE081
+FPneg = 
13A15AB2EA575557AF843D23BB207C2A4578B65C7EB4F4807C4049762097068A49ACB2E505E32E2151F2C0939B6D9E31116ADAAF5F6BC5CFCA2A
+FPdiv2 = 
0B84A7EBE021AFA98293B802370321A84C61D7AA7B722A3AD664668798947716F7E9B5B4279FBE6E57469FD6324E863CC1F53D54504AC7C2C596
+FPinv = 
013537A6D90DE62F9367C641B925A5264A22058C3F56970BDDF2D167AA1870B33D77020B79AF4BCA9675BE63F495BD5594271D5119E1E9054305
+FPexp = 
10D31FA35FDC7D5D6E1EEA8BBB34898FF77A072E7E5FA76931ABA595055099465898B36F1090E543C7C847532DE3F71F7D997C85EF1AE75280F8
+
+#test5
+FP_1 = 
7DAC8033179E034C67EC9E2354D2952146A1B538C2EAF2AAA500F0D81BDB115D0FAFF752F44A48ED10801212F78A59D08DF4AA7FF719E75E02
+FP_2 = 
559C50D74097D967320759CF87F1EAC37635256973566BFA96D94349578246F9B6CE7A404943F86A88D6157674A4CC7F08B7115DE9FE80F451
+FPadd = 
D348D10A5835DCB399F3F7F2DCC47FE4BCD6DAA236415EA53BDA3421735D5856C67E71933D8E4157995627896C2F264F96ABBBDDE118685253
+FPsub = 
28102F5BD70629E535E54453CCE0AA5DD06C8FCF4F9486B00E27AD8EC458CA6358E17D12AB06508287A9FC9C82E58D51853D99220D1B6669B1
+FP_1nres = 
7DAC8033179E034C67EC9E2354D2952146A1B538C2EAF2AAA500F0D81BDB115D0FAFF752F44A48ED10801212F78A59D08DF4AA7FF719E75E02
+FP_2nres = 
559C50D74097D967320759CF87F1EAC37635256973566BFA96D94349578246F9B6CE7A404943F86A88D6157674A4CC7F08B7115DE9FE80F451
+FPmulmod = 
108CF0404DECB303CF394112EED6C868834F0BE67D7DFA91062E539891127C8F13D2793F919CF0702A9626BC31171B1053911DD19C3A23C16407
+FPsmallmul = 
04E8BD01FEEC2C20FC0F3E2D615039D34CC25114379D2D7AAA72096871168EADA29CDFA93D8AE6D942A500B4BDAB6782258B8EA8FFA70309AC14
+FPsqr = 
06157215F9950AE9E95E4DF4D48C7DF3D2E16375C968EA13E00654A5B91ECB669ACC64914A0922E9A325D799601AE4825C7165E39B359CE51B5E
+FPreduce = 
7DAC8033179E034C67EC9E2354D2952146A1B538C2EAF2AAA500F0D81BDB115D0FAFF752F44A48ED10801212F78A59D08DF4AA7FF719E75E02
+FPneg = 
14D7A8C52235BC520DEDE9F5F13E8D284DD791238209B98869DF8A51D0C41F4ABFB05F2F579D0B36132F800DED0DCAFB7A1CB601800990C34CA9
+FPdiv2 = 
3ED640198BCF01A633F64F11AA694A90A350DA9C617579555280786C0DED88AE87D7FBA97A252476884009097BC52CE846FA553FFB8CF3AF01
+FPinv = 
1042B468427A102E7D8AFC821E3958A7617B7234C54A8C67F2B4459A0B8FBCF9B70C3F1A2960EFBF7B04706ED6C0E1C02185C8455BD725A063D7
+FPexp = 
0C4E25B56D7E9E51CC2453AB25376CDC2FD34C2AEE49F39BED1A5BF28C5619D76645946D9963D39DFBBAC8D9CA0DA37844352E42D7235E0FBFD3
+
+#test6
+FP_1 = 
072C6E58D8883E93AE2315051AB1555CD1E50E1336BF61EBBED282418D4DAFDBE4C574973B972850BD8E207DE6F01CA34CEE8A5D3A547CD76093
+FP_2 = 
063C3DDAAD5B315008B50DD8C0A08CEC81A57210088E20E3876DE257B79EAB1613E4AA32FC28C1B9DEADB1CA13070082B14821B84C9423E452A2
+FPadd = 
0D68AC3385E36FE3B6D822DDDB51E249538A80233F4D82CF4640649944EC5AF1F8AA1ECA37BFEA0A9C3BD247F9F71D25FE36AC1586E8A0BBB335
+FPsub = 
F0307E2B2D0D43A56E072C5A10C870503F9C032E31410837649FE9D5AF04C5D0E0CA643F6E6696DEE06EB3D3E91C209BA668A4EDC058F30DF1
+FP_1nres = 
072C6E58D8883E93AE2315051AB1555CD1E50E1336BF61EBBED282418D4DAFDBE4C574973B972850BD8E207DE6F01CA34CEE8A5D3A547CD76093
+FP_2nres = 
063C3DDAAD5B315008B50DD8C0A08CEC81A57210088E20E3876DE257B79EAB1613E4AA32FC28C1B9DEADB1CA13070082B14821B84C9423E452A2
+FPmulmod = 
03F31E01716D9FD968ACAB8076399CAB874B3FD038CA958DFC507904965B989653BA531ED0E2A7921477425BB628E9B5CBF8B7F0B0018D81DD59
+FPsmallmul = 
07BC4FA8756A62C4BE5D4E76CD333667E597F435F313E5C436AB74C78A68EF8299766074543392AA66CD448B05511E61215167A0474AE069C5BD
+FPsqr = 
0FF9F91E490138CA16610276CE12A8C544E77DB4A61A9D5D73669E8DF070DE030781BF2701F9982CF608F292BF48DF18FCAA852A546C28EA168B
+FPreduce = 
072C6E58D8883E93AE2315051AB1555CD1E50E1336BF61EBBED282418D4DAFDBE4C574973B972850BD8E207DE6F01CA34CEE8A5D3A547CD76093
+FPneg = 
0E28E6EC7CC51BC1AC32C18EF9E20A609D3924C5840D428F55B209011B924A8037FA9A8F6EFA2D2E42B1DFA2191538B1FDBC204EC5AC2DD34A18
+FPdiv2 = 
0E40E1CF16EACC74843C75CC97A25A8D2081A075F8C6033369AB86C21B16D51C00C2C1DEF3143EE7DEE7104EF37AB8FC4BCC9A849D2A93C1059F
+FPinv = 
04E85EDA88E41CB90FD06D999C1871FEE4DC041048FED43FA391DEC349237638B58BF035A6DD819CCD675DC3A180C377610B69938673AC12D133
+FPexp = 
1019AEC907A2A850A5C115C798E5BEBA8E3CC6CA802A629E35EC7E81928D86E688F73D5DAE0CE410AB1D04BD5B4E0DD7DC091330C097D5C772FA
+
+#test7
+FP_1 = 
4E83885E49292E1C7FB090FF6375241D718E7E3CCF108C74193890DF0915405D34CC9723E773E361AF9E250142E07FCC6CBE040D7043E5F95B
+FP_2 = 
0D5A2DAA1539D7338F386810B46847A1791656E9C0F08772798D5E0DBD776FE9A77757BCE2DBE747F5C9018041A30B6B5ADC74B831C026ABC8EE
+FPadd = 
0DA8B13273830061ABB818A1B3CBBCC59687E567FDBF97FEEDA6969E9C80852A04AC245406C35B2B57789FA542E5EBEB274932BC3F306A91C249
+FPsub = 
0849AB239E5CAC4FE79D1F145F8E8D4013796A6D36AB2D950F1065C5CA719FB2D27D8400EB9CE21A6C269CC4BFA52A69BC3AF3F7DBB0C7E4DB18
+FP_1nres = 
4E83885E49292E1C7FB090FF6375241D718E7E3CCF108C74193890DF0915405D34CC9723E773E361AF9E250142E07FCC6CBE040D7043E5F95B
+FP_2nres = 
0D5A2DAA1539D7338F386810B46847A1791656E9C0F08772798D5E0DBD776FE9A77757BCE2DBE747F5C9018041A30B6B5ADC74B831C026ABC8EE
+FPmulmod = 
12A0074723A5C0DD1EF62FDB17B3C996A4777B1F5597E3F575EC2666DF68EE6D947A95B2A01C74E1B15BF6A88E82B7AA3E3C8273CD535B4B2527
+FPsmallmul = 
03112353AEDB9BCD1CFCE5A9F9E29369266F90EE6016A57C88FC35A8B65AD483A40FFDE7670A86E1D0DC2D720C9CC4FDFC3F6C288662A6FBBD8E
+FPsqr = 
5CF7303CF9D59F8150A596727775E3F93A29037465A436FEC075A94420C18291BCFD124E4DAB218CCB5CA60199FF71891ED5D06A5250AB4045
+FPreduce = 
4E83885E49292E1C7FB090FF6375241D718E7E3CCF108C74193890DF0915405D34CC9723E773E361AF9E250142E07FCC6CBE040D7043E5F95B
+FPneg = 
1506D1BCF70431273DD62603152FEA9951ACA45A7DFD93EEA06B52B1C9D6E51BBF8B428F86A9E19B9E9061FAFEC274D57E3DECA7F29066C4B150
+FPdiv2 = 
0AD1EC66D9CB41C1BB6AC39289FB6A70C647E0AB7BCDDA83C44EE1E9C3F487CE3CFA6DDEE73C64B130F7CF2280A41AEA8B8BB45806B877485203
+FPinv = 
12595133D3C4F1CC14229E5A75848057DACBFA8107F9E3C6F40AB2EF5414B4E188D8813C1AC8491F321583343BB05F45F341E0F92C21A4E57DA2
+FPexp = 
051511A1B774C0627D6E56B6808F8273821BD66AB11DE974926983B35973965DE8231681D6B7102AF5BFAEF344C7871B5E821A0B1E0DB930AB67
+
+#test8
+FP_1 = 
0909609FE89B3D18D7D1FF51749CDA686A152895E4416A9911EAE879F1BB249E6431F79A0FECF15EC281634B9940307251A2CDBABCCB27B178D6
+FP_2 = 
5DEF13A5F818BFC728A2DDCBC741B578362E59E519C40B11F7BBAE8326194DF1B3457D40600074E31DC7B61872C5ADE56AF1244E752867B7FF
+FPadd = 
09674FB38E9355D89EFAA22F40641C1DE24B56EFC95B2EA423E2A42874E13DEC55E53D17504CF1D3A59F2B01B1B2F620370DBEDF0B40501930D5
+FPsub = 
08AB718C42A3245910A95C73A8D598B2F1DEFA3BFF27A68DFFF32CCB6E950B50727EB21CCF8CF0E9DF639B9580CD6AC46C37DC966E55FF49C0D7
+FP_1nres = 
0909609FE89B3D18D7D1FF51749CDA686A152895E4416A9911EAE879F1BB249E6431F79A0FECF15EC281634B9940307251A2CDBABCCB27B178D6
+FP_2nres = 
5DEF13A5F818BFC728A2DDCBC741B578362E59E519C40B11F7BBAE8326194DF1B3457D40600074E31DC7B61872C5ADE56AF1244E752867B7FF
+FPmulmod = 
0B98FF608C7ABECA9105FC28F0CC54FEF080D949D1B61B811BD7A7CDE55F5DF96345FB68F569B5B3CE3E3507EA6A07F88302F8BE1DCED9ACCF80
+FPsmallmul = 
05087129C0DAF9A304DC9EDE3BD3091E685ACA77FF5B980E611AE7B8CDCF84BF76F36F69F4FC17B7980DE073FC6C8F2205B15E9B5FECE2440DB0
+FPsqr = 
0E2C2DA50B3D6D69B53894EB4C6EA8A7E2E2E1006258DFCAD2FBDE7BFC8FCAD339C1370734257D7D8F6535850C802AC9C3AB2E0D96D74F9C0B72
+FPreduce = 
0909609FE89B3D18D7D1FF51749CDA686A152895E4416A9911EAE879F1BB249E6431F79A0FECF15EC281634B9940307251A2CDBABCCB27B178D6
+FPneg = 
0C4BF4A56CB21D3C8283D7429FF6855505090A42D68B39E20299A2C8B724D5BDB88E178C9AA464203DBE9CD466C524E2F907DCF1433582F931D5
+FPdiv2 = 
0484B04FF44D9E8C6BE8FFA8BA4E6D34350A944AF220B54C88F5743CF8DD924F3218FBCD07F678AF6140B1A5CCA0183928D166DD5E6593D8BC6B
+FPinv = 
1553BAEB33B0CAB3F16B07797C134B80D09DA5C072699DDB03EB4387D1EA6928D461F675BC36823F5AB9D1B238ABC76EC97E1747F5B75D316748
+FPexp = 
0E55FC311552F6D51E4FC0D3E74EF0EE858331F312D2EBD7F8160017BD53E03A23C34A9ED367F20E2ED13310F1A3E100BFDB564AE6C5CEFA6E0F
+
+#test9
+FP_1 = 
062ABEDCC4AF3FEB73579B300EF1FFF2A8D69139D83A86D04544EACC19255CFE68849A3ACFFF8B42CB14DA2C5AAEB9467D125D5D713F61A31D85
+FP_2 = 
04025DEE587CB4D00B7118CFB46EE0318EE2655B583C17FDFE6796D5C9FA70CC303E01CD7EC3E8CDD29811DFEB0CE9223833489D9732BE287844
+FPadd = 
0A2D1CCB1D2BF4BB7EC8B3FFC360E02437B8F69530769ECE43AC81A1E31FCDCA98C29C084EC374109DACEC0C45BBA268B545A5FB08721FCB95C9
+FPsub = 
022860EE6C328B1B67E682605A831FC119F42BDE7FFE6ED246DD53F64F2AEC323846986D513BA274F87CC84C6FA1D02444DF14BFDA0CA37AA541
+FP_1nres = 
062ABEDCC4AF3FEB73579B300EF1FFF2A8D69139D83A86D04544EACC19255CFE68849A3ACFFF8B42CB14DA2C5AAEB9467D125D5D713F61A31D85
+FP_2nres = 
04025DEE587CB4D00B7118CFB46EE0318EE2655B583C17FDFE6796D5C9FA70CC303E01CD7EC3E8CDD29811DFEB0CE9223833489D9732BE287844
+FPmulmod = 
11421FB0D426E9233EC7B2E1679A66CEDE8333B9F4E7A3E763A794B4C9DA4ADE5F9313ACA621F8DCE4FF979CCAA15EF4C31F34A8FDAAE6BF551C
+FPsmallmul = 
1300CA15043DCA87CCC062B86C4D3FFFBA254690FCAFFB2C8BA81573A9B5AD37DBADE7FECAD8C59DEE50857B8AC892164D62504E6C787B09D1DC
+FPsqr = 
0D82B0AF57EB5F3F7D47959346610406D3F796B5F0BB962C8D05C45CDE69E6201EFF7C98D5FD13A2042FE17FE318C9774AE3375795B3A3C05929
+FPreduce = 
062ABEDCC4AF3FEB73579B300EF1FFF2A8D69139D83A86D04544EACC19255CFE68849A3ACFFF8B42CB14DA2C5AAEB9467D125D5D713F61A31D85
+FPneg = 
0F2A9668909E1A69E6FE3B6405A15FCAC647A19EE2921DAACF3FA0768FBA9D5DB43B74EBDA91CA3C352B25F3A5569C0ECD984D4E8EC149078D26
+FPdiv2 = 
0DC00A110CFE4D2066D6B8E211C2AFD80BFA6209498395A5ACE4BB076102ABAD42A254B0BD487060E5AA6D262D5A074DE3DE8404B8A00626E418
+FPinv = 
057A2B6C18AF8193A4A906EF0396C443144B6A74ECEC59F40F06B35A4D8EE5ED89C290093E6ED838EDF650F3314FB3DCEE53ECEB8A6AA177D9CC
+FPexp = 
117EFE03456586B89C5A6A001C6B33784CC5188FDDF978B53311969DB22B1F0D465A139FDE556EDC0C4B632091AF322D037FF2762B1A0FE9F4AB
+
+#test10
+FP_1 = 
0AAE49F9322397BACA004592919EDCDE528414A3BA99D8005E0738247C8BE56297669948CB75EC2B507A5748B900D8651C3D8F8E07CD7C8E2D4E
+FP_2 = 
083768FF119D155F30843706C516B54F06C9989663B51BBF505A5B2A5108A415527CFDFDADF5156FA2E545645F74CFC75D20B8F114143E2EDD0A
+FPadd = 
12E5B2F843C0AD19FA847C9956B5922D594DAD3A1E4EF3BFAE61934ECD948977E9E39746796B019AF35F9CAD1875A82C795E487F1BE1BABD0A58
+FPsub = 
0276E0FA2086825B997C0E8BCC88278F4BBA7C0D56E4BC410DACDCFA2B83414D44E99B4B1D80D6BBAD9511E4598C089DBF1CD69CF3B93E5F5044
+FP_1nres = 
0AAE49F9322397BACA004592919EDCDE528414A3BA99D8005E0738247C8BE56297669948CB75EC2B507A5748B900D8651C3D8F8E07CD7C8E2D4E
+FP_2nres = 
083768FF119D155F30843706C516B54F06C9989663B51BBF505A5B2A5108A415527CFDFDADF5156FA2E545645F74CFC75D20B8F114143E2EDD0A
+FPmulmod = 
0973F7ECF7ACBE1BA922057AC8B1CD577F59AFCBBC5100CE3274F02B7D2D9DF5DD1615A17247D80937449FDD31421A07ABB4E095FB4C975E70B3
+FPsmallmul = 
2439614AE129A1205586D54953C1FC0D91D029A403399C45B1791F9117120D5A41B1169DC48E362387683739EDC948A51246304E0388386FB5
+FPsqr = 
0CA800D9083C72F6B6A5785C85C8A1185D783B7A77336E9D1ED670E28716955E398D9EE793841CDACB5A8C85E6BDB042625624CA33A6514E15E6
+FPreduce = 
0AAE49F9322397BACA004592919EDCDE528414A3BA99D8005E0738247C8BE56297669948CB75EC2B507A5748B900D8651C3D8F8E07CD7C8E2D4E
+FPneg = 
0AA70B4C2329C29A9055910182F482DF1C9A1E350032CC7AB67D531E2C5414F9855975DDDF1B6953AFC5A8D747047CF02E6D1B1DF8332E1C7D5D
+FPdiv2 = 
055724FC9911CBDD650022C948CF6E6F29420A51DD4CEC002F039C123E45F2B14BB34CA465BAF615A83D2BA45C806C328E1EC7C703E6BE4716A7
+FPinv = 
0A49EF33A901ED9F8DFB75C44E65C03B36CCD5B7FDF20C2C25E778816274A166C529504C2613BBDFB230558A94A876E3325E180696CBB852D059
+FPexp = 
13E6D27F7CCBB63DDBD2732C9F0DEAAB6BC195930E6F9F297301DF032B0B22242A7A1D600A8BEE407DBF75A0BF6550BA608FE1D6B1FF51A05799

http://git-wip-us.apache.org/repos/asf/incubator-milagro-crypto-c/blob/8d28d2c3/testVectors/fp/test_vector_BLS48.txt
----------------------------------------------------------------------
diff --git a/testVectors/fp/test_vector_BLS48.txt 
b/testVectors/fp/test_vector_BLS48.txt
new file mode 100644
index 0000000..43c6b7d
--- /dev/null
+++ b/testVectors/fp/test_vector_BLS48.txt
@@ -0,0 +1,161 @@
+# FP ARITHMETICS - CURVE: BLS24, Modulo = 
0x0fd17d842ffcfc5b23729047a56c867152acd4420536f405da950aecd56b379b89413016a7c025a415202086876b2ec137a9870d4228402967009a661df9eef6e60ffcf6ac0b
+
+#test1
+FP_1 = 
03524C9CFE102254D47978ECD305A26ED5ABBCE8CE4F70C841BD4EDC92D27C3457A986F4243F3805D9D5C1C6227C717D6542496ABD81D71F8D798449CD124C7C2F71F11B978E
+FP_2 = 
02D3371BB8A2913789875A526245734F818B41D2D92BCE0EA3806303F37B7A13EFD7990B874FE145259FE5537ED3BA09F45E9868AD05DD2FEB8AC4095F24CCF9FDD4B411D981
+FPadd = 
062583B8B6B2B38C5E00D33F354B15BE5736FEBBA77B3ED6E53DB1E0864DF64847811FFFAB8F194AFF75A719A1502B8759A0E1D36A87B44F790448532C3719762D46A52D710F
+FPsub = 
7F1581456D911D4AF21E9A70C02F1F54207B15F523A2B99E3CEBD89F57022067D1EDE89CEF56C0B435DC72A3A8B77370E3B102107BF9EFA1EEC0406DED7F82319D3D09BE0D
+FP_1nres = 
03524C9CFE102254D47978ECD305A26ED5ABBCE8CE4F70C841BD4EDC92D27C3457A986F4243F3805D9D5C1C6227C717D6542496ABD81D71F8D798449CD124C7C2F71F11B978E
+FP_2nres = 
02D3371BB8A2913789875A526245734F818B41D2D92BCE0EA3806303F37B7A13EFD7990B874FE145259FE5537ED3BA09F45E9868AD05DD2FEB8AC4095F24CCF9FDD4B411D981
+FPmulmod = 
0AA87AFC00F32813C66711AA967935E8BFDC4E55D7BAE8896620D02D3A7F2583E05344004C572935C655B9A7046E9BB2EC52FB18E23824B9343216972BA2CEB5D92D876F39C5
+FPsmallmul = 
019403198CA75E9A05D998B0F35F4B71B35BB89404AC7FC6DC3AFEC411626AD45A1CE55C1AF7E4F2581950B04A0611638543D010E2C1E6E8B8BDF615C6C31EEC0E5371269376
+FPsqr = 
0D4D072293AFD21497EB8A52EF5272C5D365FE825A9C8EAA9F7F25EB2F27E4112BA7C363910E69FF235A7F98E850C2654868B9B202CA855F5BB9D3FFBABF6095809D97E3B138
+FPreduce = 
03524C9CFE102254D47978ECD305A26ED5ABBCE8CE4F70C841BD4EDC92D27C3457A986F4243F3805D9D5C1C6227C717D6542496ABD81D71F8D798449CD124C7C2F71F11B978E
+FPneg = 
0C7F30E731ECDA064EF9175AD266E4027D01175936E7833D98D7BC104298BB673197A9228380ED9E3B4A5EC064EEBD43D2673DA284A66909D987161C50E7A27AB69E0BDB147D
+FPdiv2 = 
01A9264E7F08112A6A3CBC766982D1376AD5DE746727B86420DEA76E49693E1A2BD4C37A121F9C02ECEAE0E3113E38BEB2A124B55EC0EB8FC6BCC224E689263E17B8F88DCBC7
+FPinv = 
0FADB4EAF9D41FFC41154CEE6E58BA4EDD9F5B31280590D92C8E3A742F66E6A0A136447714606980791A99B491DFF5C269DC10BBA957F079E3AD684B96786BDF021199F02A78
+FPexp = 
011948F82A84BB48C7E99E70284C270B0D631DEABBAFBF7867974CC038C037E39599293A18A8C1F0069BFB947A212126898187636A311E4D45DBCEA36335C576ECCF78CE09C6
+
+#test2
+FP_1 = 
07B108E9ACD20EEDA8EB192A7A6F92D48DD8724CC06FBC6AD0D0FF967EC99E67DAC8C260783A912D62D37D407FE9739B2D8B9361D4006A1158B89C945A5DE26FCCCC65E0BBF4
+FP_2 = 
0E9ED7988032388FCD362F1CFF3C888A16DDE4BB708B500335AA4C2941914B52827E9415D912B8C4589BD7433DFD427E8B3983A9579FED89904C2D53148EA89E0817E1ED718A
+FPadd = 
067E62FDFD074B2252AEB7FFD43F94ED520982C62BC418682BE640D2EAEFB21ED406265FA98D244DA64F33FD367B8758811B8FFDE978177182042F8150F29C16EED44AD78173
+FPsub = 
08E3AED55C9CD2B8FF277A55209F90BBC9A761D3551B606D75BBBE5A12A38AB0E18B5E6146E7FE0D1F57C683C9575FDDD9FB96C5BE88BCB12F6D09A763C928C8AAC480E9F675
+FP_1nres = 
07B108E9ACD20EEDA8EB192A7A6F92D48DD8724CC06FBC6AD0D0FF967EC99E67DAC8C260783A912D62D37D407FE9739B2D8B9361D4006A1158B89C945A5DE26FCCCC65E0BBF4
+FP_2nres = 
0E9ED7988032388FCD362F1CFF3C888A16DDE4BB708B500335AA4C2941914B52827E9415D912B8C4589BD7433DFD427E8B3983A9579FED89904C2D53148EA89E0817E1ED718A
+FPmulmod = 
0A65937E829D8EE3F3F1B8167D3A9020F909FA65FA77B6915458D6B91E0C2D3BA7D54306EF41210DEDAC01CCD2EF2D1BB4AA81D9B362CC281E4D8CDAFE208FD8B94044A7B3FA
+FPsmallmul = 
0DA463100040A3DC0B64BA8A32A9A2883FC125F76F818C14BDD5D02D9E3351A066D2D76A1349153587C2626AE171C90AE8CDA59D3F632407DB33B4330FC31C8267BC06ECA75C
+FPsqr = 
07FABB164D56EC5D6E8477140E59577DF91F5BE27F334146200829A45F4FE8CF8AB41E3BD150C7B23F662D82724F25397540CEB6F6AE815A3791443EEEF364B6B4639A51E94A
+FPreduce = 
07B108E9ACD20EEDA8EB192A7A6F92D48DD8724CC06FBC6AD0D0FF967EC99E67DAC8C260783A912D62D37D407FE9739B2D8B9361D4006A1158B89C945A5DE26FCCCC65E0BBF4
+FPneg = 
0820749A832AED6D7A87771D2AFCF39CC4D461F544C7379B09C40B5656A19933AE786DB62F859476B24CA3460781BB260A1DF3AB6E27D6180E47FDD1C39C0C8719439715F017
+FPdiv2 = 
03D88474D6690776D4758C953D37C96A46EC39266037DE3568687FCB3F64CF33ED6461303C1D4896B169BEA03FF4B9CD96C5C9B0EA003508AC5C4E4A2D2EF137E66632F05DFA
+FPinv = 
0BE2149AA9161C194CCB979C2FC2626C008F48A85E414E7BB3637380CA5F2527822A5F69355F3C6AECED93F7CC5E31A45E049DD5467CE780F7FACFA839E3DF317630CABB0C3E
+FPexp = 
090499B7FF8AE3356CCBC8E47083F5013718B8899F89E9F41225E643D1CE3A74481B563C7E0687DCD0DE284BCCC172A06E21C837CDD0AA58B86A6074E5E2E98DBC8420629DAF
+
+#test3
+FP_1 = 
02C138C3DAE96ABBA70C7FEC246FD9591F4F6201ABFF5302659EB5ED09EAE1EA99C5CB206A933A92028E1C44D8DAC535FBA74CEDBC9063532086E08B94F6B5216EAD57A6574F
+FP_2 = 
0D4144C049F3FA49D5A0EBE3B9CC7FC5A1CC91F81435A585083AA08D46646E84417831905EC3340DFD3A43E8A62616CE24A488D0BFEC5C0A691E711A8253C1720C66A5FDB8E7
+FPadd = 
30FFFFF4E068AA593ADB8838CFD2AD6E6F1FB7BAFE048193444B8D7AE418D351FCCC9A219648FBEAA83FA6F795AD42E8A24EB13A547F3422A4B73FF950879C950400AD642B
+FPsub = 
05517187C0F26CCCF4DE2450100FE004D02FA44B9D00A18337F9204C98F1AB01E18EC9A6B3902C281A73F8E2BA1FDD290EAC4B2A3ECC47721E6909D7309CE2A64856AE9F4A73
+FP_1nres = 
02C138C3DAE96ABBA70C7FEC246FD9591F4F6201ABFF5302659EB5ED09EAE1EA99C5CB206A933A92028E1C44D8DAC535FBA74CEDBC9063532086E08B94F6B5216EAD57A6574F
+FP_2nres = 
0D4144C049F3FA49D5A0EBE3B9CC7FC5A1CC91F81435A585083AA08D46646E84417831905EC3340DFD3A43E8A62616CE24A488D0BFEC5C0A691E711A8253C1720C66A5FDB8E7
+FPmulmod = 
0D519E247A576FCF7BCE659102FFD13E6F06F082921311231B39DFFCD945A98878B0BF21427060886B66D6EA7F5243BA2972F7F8CE0EC604CC5AAF0AAD40774D86C9A15D34FB
+FPsmallmul = 
0BBABA225D212EF9630A6EF1C6F1F709E66CFFCEB2C24A121D9E10558DC19B8E7878BF2D82002410046CFA29F120855A9CDF7A3C1B7BA115DE442B0DB3A924576CB56F88BD0B
+FPsqr = 
0D7B5B53AF1B01700BB5F0F324C3762A2884AB9193D7D39EF9ED752F86171DE27A59D83CE5A6A4DC8356F2B6D4B794AC0C2061AEAEEE804CEFC54BCF68FCC721F83BDA0C39C8
+FPreduce = 
02C138C3DAE96ABBA70C7FEC246FD9591F4F6201ABFF5302659EB5ED09EAE1EA99C5CB206A933A92028E1C44D8DAC535FBA74CEDBC9063532086E08B94F6B5216EAD57A6574F
+FPneg = 
0D1044C05513919F7C66105B80FCAD18335D72405937A10374F654FFCB8055B0EF7B64F63D2CEB1212920441AE90698B3C023A1F8597DCD64679B9DA890339D57762A55054BC
+FPdiv2 = 
09495B240573338B653F8819E4EE2FE538FE1B21D89B23842019E06CEFAB0CC311837D9B8929B01B0BD71E65B022F9FB99A869FD7F5C51BE43C3BD78D978520C2A5EAA4E81AD
+FPinv = 
0CC553854B853FEDCE1B02BEBA2740CB5969992A95DD83EB4154CF2729520EFFEC44616996F540405292E09B822D85CC5953A947A8D3B41F9D6B863DA3BEAF6741DC89621A64
+FPexp = 
08A4049CBDC52D6DBC8CA8B141817673ABF3DB9426D216F61BD3013C2054C8EF52DD52B51963335B6CB38A4FB66FAB03C15A2FB2A96C078BC05DCBE010544AA4E84ABE5A38EB
+
+#test4
+FP_1 = 
0ECEC81226490E3E4812DBF30FAF4FAAC8A6428A7BD65BD0FDEAF3E7CBF8189C331938ABCE11DCCA54214B4AA260817C324E104A38884046CB205EF1B5EF3E9DDF0E42ED9B37
+FP_2 = 
0C34338966E563B6B40FB72D4FEED627C44104A7DCBF94D4D78D3F22EB57CFF9FC3D52078C90F8A8AE2AC132378D71330A9A0EA844C8E355856F0AB033CD28A185AE6C05FE05
+FPadd = 
0B317E175D317599D8B002D8BA319F613A3A72F0535EFC9FFAE3281DE1E4B0FAA6155A9CB2E2AFCEED2BEBF65282C3EE053E97E53B28E372E98ECF3BCBC278487EACB1FCED31
+FPsub = 
029A9488BF63AA87940324C5BFC0798304653DE29F16C6FC265DB4C4E0A048A236DBE6A44180E421A5F68A186AD3104927B401A1F3BF5CF145B15441822215FC595FD6E79D32
+FP_1nres = 
0ECEC81226490E3E4812DBF30FAF4FAAC8A6428A7BD65BD0FDEAF3E7CBF8189C331938ABCE11DCCA54214B4AA260817C324E104A38884046CB205EF1B5EF3E9DDF0E42ED9B37
+FP_2nres = 
0C34338966E563B6B40FB72D4FEED627C44104A7DCBF94D4D78D3F22EB57CFF9FC3D52078C90F8A8AE2AC132378D71330A9A0EA844C8E355856F0AB033CD28A185AE6C05FE05
+FPmulmod = 
0CC0AC9E34ED0EEC233D30FA4AF3DD65E9C463836C9BDEFDCDBF726FBF3A356267537DA5E56B5401E796B26E82264AD8073886AA58CE936F8930133EEEBE8958FDA9318B56B6
+FPsmallmul = 
05B6670FCEF5AF3A91B584F9CC0862AFEE6B2316A77101F53BF024BA76EC01A22BB185EA26F14D228B2BCC2F95006A0F0216E36EE1E8414F503E47DA0D8F0B7C9FFEB89C03C3
+FPsqr = 
08FC7BAACB7EB4B013E03AA7C278F1B014BA59B05CFE163EAAA23479FA7D05C667C3FF3595A09EED02C4FD0F0C266E7793BBA56C35B0EA78A161C120F90D8D97CEA8711A5C51
+FPreduce = 
0ECEC81226490E3E4812DBF30FAF4FAAC8A6428A7BD65BD0FDEAF3E7CBF8189C331938ABCE11DCCA54214B4AA260817C324E104A38884046CB205EF1B5EF3E9DDF0E42ED9B37
+FPneg = 
0102B57209B3EE1CDB5FB45495BD36C68A0691B789609834DCAA170509731EFF5627F76AD9AE48D9C0FED53BE50AAD45055B76C3099FFFE29BE03B74680AB0590701BA0910D4
+FPdiv2 = 
0F5022CB2B23054CB5C2B61D5A8DEB0E0DA98B664086A7EB6C3FFF6A50B1A81BDE2D34613AE9013734A0B5E894E5D81EB4FBCBABBD58403819107CABE9F496CA628F1FF223A1
+FPinv = 
05E0FF77866CD396DAA8DB871DB233107E88E4A963E66E7407B693629D0CC16A47D42ED78BFC7147E7428EC747AF1A36CFADE88EE729075D6C2580F1BC8F9F21F69322CA49D2
+FPexp = 
0C5DB3CD6481E7D86C44E87BF7897D68052E1BF722A7EB443B898A5089BAE951A39B8B32E90A2AEEAF8C9684460B63C2EBEC5DA6F070FB3DBE3CC0E95FB18A10456D82330081
+
+#test5
+FP_1 = 
9EC83E910B66ED06F8671A5AB9BE593AACEC2D6B726C4755D1068646031A11BC30E8BB55E2069A9FF91474D9CE88DA45E3605DDBC69B4FEC79CF792A0FA10AFBA2802E5EF2
+FP_2 = 
06697DCC301CA5417E39A04BCC6E7CDB06696A94ACBF3666156437DDDEE931A2A902A768B905B58CF35CAC98C754581B800312C0EF5DBD2833576CBB849ECEE7587B55D852BE
+FPadd = 
0708460AC1280C2E8532076627283B34411656C21831A2AD6B353E6424EC4BB4653390240EE7BC279355C10DA122E0F5C5E6731ECB2458781FD13C34AEAE6FF2541DD606B1B0
+FPsub = 
0A06C7F690EBBE06AC31571633B7C7EF86F055DAC3EA29E71B01D9953C85200A9C6F7169449C76B1C1BC886299E55F7FFD89D4AA2E911E512022FD23C36AC11A8937274CB83F
+FP_1nres = 
9EC83E910B66ED06F8671A5AB9BE593AACEC2D6B726C4755D1068646031A11BC30E8BB55E2069A9FF91474D9CE88DA45E3605DDBC69B4FEC79CF792A0FA10AFBA2802E5EF2
+FP_2nres = 
06697DCC301CA5417E39A04BCC6E7CDB06696A94ACBF3666156437DDDEE931A2A902A768B905B58CF35CAC98C754581B800312C0EF5DBD2833576CBB849ECEE7587B55D852BE
+FPmulmod = 
07FC29DFA135081F76675A6EEE41492B97E7D95EE0293A274FC51178BE5EA64E34BE1E0AC3650999129037B4B44AF067D5B6548FA02EC5CAB0C0B11B10D5B3BD3E0416FC184C
+FPsmallmul = 
0633D271AA72054245B407078B416F7C4AC139C632783AC95A2A413EBC1F04B159E917515AD4420A3FBACC9082115886BAE1C3AA95C2111F3CC21ABBA49C4A6DD45901CFB574
+FPsqr = 
01236F7FE2E735270405EEA5F20BDC9F00DB8AB8E3C4D14127BA9ED329E5A47D4B3AA0C61BB0247918639F52059FF0E0FBF357813A4717C6AA2238BF5127A8109670111C1FDB
+FPreduce = 
9EC83E910B66ED06F8671A5AB9BE593AACEC2D6B726C4755D1068646031A11BC30E8BB55E2069A9FF91474D9CE88DA45E3605DDBC69B4FEC79CF792A0FA10AFBA2802E5EF2
+FPneg = 
0F32B5459EF1956E1C7A292D4AB2C81817FFE81499C487BE84C404668F681D89CD10475B51DE1F0975270C11AD9CA5E6F1C626AF6661A4D97A86CAECF3EA4DEBEA6D7CC84D19
+FPdiv2 = 
4F641F4885B376837C338D2D5CDF2C9D567616B5B93623AAE8834323018D08DE18745DAAF1034D4FFC8A3A6CE7446D22F1B02EEDE34DA7F63CE7BC9507D0857DD140172F79
+FPinv = 
05A6ADA4C1E2A03D20E4C495BD15246194E8339A6FA498E70F867D985ABC361D02EB44B2D7E45FFC4C74C82FEAEF02AD444E915110E060F8AD126F5C94A300328CB2DB7C44D1
+FPexp = 
0370A6BC8FC12B2D039CAE3759E93B69656E90EC4CB9745528B4EE811B6DC114AF0A9A625424154424EDBFCFF6996F0B0D157CFEF34F00B2461A0E22DEC996D3F4D6AD4D6CF9
+
+#test6
+FP_1 = 
0ADD28182EC19904E174EFE375BFC75B4CD1324B2B6F6DAA65E87C3020BB1AD469F9052ED685B369387B716A53E585ED73727D9E775B81EA1C2325DDCF2D323FA6E5FC342CE1
+FP_2 = 
0B3FA1BE92F5089C89574EC77FB0D6A80C36C76B04ADB02EC7CC538D88E7AC460FA1726E8C3CEFCBB01F2ED2EFEE1D4CD2BD5DB07540BCCC1626812630AF2698343A2C138030
+FPadd = 
064B4C5291B9A5464759AE6350041792065B25742AE629D3531FC4D0D4378F7EF0594786BB027D90D37A7FB6BC6874790E865441AA73FE8CCB490C9DE1E269E0F5102B510106
+FPsub = 
0F6F03DDCBC98CC37B9031639B7B772493473F222BF8B18178B1338F6D3EA629E398C2D6F208E9419D7C631DEB629761D85EA6FB444305476CFD3F1DBC77FA9E58BBCD1758BC
+FP_1nres = 
0ADD28182EC19904E174EFE375BFC75B4CD1324B2B6F6DAA65E87C3020BB1AD469F9052ED685B369387B716A53E585ED73727D9E775B81EA1C2325DDCF2D323FA6E5FC342CE1
+FP_2nres = 
0B3FA1BE92F5089C89574EC77FB0D6A80C36C76B04ADB02EC7CC538D88E7AC460FA1726E8C3CEFCBB01F2ED2EFEE1D4CD2BD5DB07540BCCC1626812630AF2698343A2C138030
+FPmulmod = 
05B2634C86348CDB23F63EBFE3E398B66A112EE28196B1A36EC8C96534393DCB286765EA85747F7C6A4B58206CD70667A07ECB026A450E34A358EBFF1A8944457738D4517CA5
+FPsmallmul = 
0DBA9FD8B3A2100DF9E1FD34B8F2A2E9101EFD6393109084DB96985446CBBEA6EC33134C72B82043B611AB001A7422BF347FBDE11CA1922CAF5BDC4563E85CB3209BEC41B888
+FPsqr = 
0E869BD5F1EF66B011667BDE888A488C8DB0FB52DC79C00F84770135EC383610CA819DB6CEE3C8450016E990EE01ED038CC43A577A39A6618799E0BF2F77F2ADFE5CED4D1718
+FPreduce = 
0ADD28182EC19904E174EFE375BFC75B4CD1324B2B6F6DAA65E87C3020BB1AD469F9052ED685B369387B716A53E585ED73727D9E775B81EA1C2325DDCF2D323FA6E5FC342CE1
+FPneg = 
04F4556C013B635641FDA0642FACBF1605DBA1F6D9C7865B74AC8EBCB4B01CC71F482AE7D13A723ADCA4AF1C3385A8D3C437096ECACCBE3F4ADD74884ECCBCB73F2A00C27F2A
+FPdiv2 = 
0D5752CE2F5F4AB00273C0158D9626E64FBF0346985330D8203EC38E7B132937F99D1AA2BF22EC86A6CDC8F86DA85A57558E0255DCC1E109C191E021F693909B467AFC956C76
+FPinv = 
06FBB1A29186C1593ABD4FFD3947F3778CB8947DA772F6F838DA34718768A0E082BF5B12D3448C6E8BC4407F34ED8CAFA3B00148AC6904845350DAAFCA3418567FD0BDEA1915
+FPexp = 
0AF7013B79032EFD0567368F493EEEC14987302EA680A8D950B52D7EBFB49E9AAD30210461CC669DAA886FB080EDC4F14A87B79C22164C306022B4CFDC39C46E23F4962346BE
+
+#test7
+FP_1 = 
0810943B598EF9FF3EA82596BEB9FCA7D5336CDA21DDE485DE5EC79C5CB23207A7414498F95282C73036199A15D47FB18FF2B0824F4A97B4D345572C03CD386EE76A07B9DF50
+FP_2 = 
0232305AC9052181443099C6E4B1A1AB5218B17403F8F6D20D3FDD848FE5B5BBF272E52DB13E9E5D0F8FEF68A73DD87E05ACE2CD41CD82C96DCC5D8CBC81D71B3AC21511AB13
+FPadd = 
0A42C49622941B8082D8BF5DA36B9E53274C1E4E25D6DB57EB9EA520EC97E7C399B429C6AA9121243FC60902BD12582F959F934F91181A7E4111B4B8C04F0F8A222C1CCB8A63
+FPsub = 
05DE63E09089D87DFA778BCFDA085AFC831ABB661DE4EDB3D11EEA17CCCC7C4BB4CE5F6B4813E46A20A62A316E96A7338A45CDB50D7D14EB6578F99F474B6153ACA7F2A8343D
+FP_1nres = 
0810943B598EF9FF3EA82596BEB9FCA7D5336CDA21DDE485DE5EC79C5CB23207A7414498F95282C73036199A15D47FB18FF2B0824F4A97B4D345572C03CD386EE76A07B9DF50
+FP_2nres = 
0232305AC9052181443099C6E4B1A1AB5218B17403F8F6D20D3FDD848FE5B5BBF272E52DB13E9E5D0F8FEF68A73DD87E05ACE2CD41CD82C96DCC5D8CBC81D71B3AC21511AB13
+FPmulmod = 
0FAA643C8252C7C8E3D25EBD0C9B0AE8A406654BDBF7BCC2B057B2BD78BA67D7DA8B5B2304395CCABF16FF84695054B626D601B4B828857B316D62814F4981C16F4E9BE808EA
+FPsmallmul = 
018E56BC8FA4D630C154A67D38253E57B6A21B3B3898291D6ACA957B73DDDE42DA46BD8876785F93787C5D6435351329892B41D4CE20AC413DB263B9902289828BD45C715CE9
+FPsqr = 
08B9141384F22292973317BE931B6BF4511CAA3D7C783078FABAB2CF062F73E8B9C233FC29E21AFD4DE1F93293A4553FE7AEBD2CF34F10DBD4AA73B0E42B357F3A281A9A46A2
+FPreduce = 
0810943B598EF9FF3EA82596BEB9FCA7D5336CDA21DDE485DE5EC79C5CB23207A7414498F95282C73036199A15D47FB18FF2B0824F4A97B4D345572C03CD386EE76A07B9DF50
+FPneg = 
07C0E948D66E025BE4CA6AB0E6B289C97D796767E3590F7FFC36435078B90593E1FFEB7DAE6DA2DCE4EA06EC7196AF0FA7B6D68AF2DDA87493BB433A1A2CB687FEA5F53CCCBB
+FPdiv2 = 
04084A1DACC77CFF9F5412CB5F5CFE53EA99B66D10EEF242EF2F63CE2E591903D3A0A24C7CA94163981B0CCD0AEA3FD8C7F9584127A54BDA69A2AB9601E69C3773B503DCEFA8
+FPinv = 
0DA7E98DFD57661E33C633ACC8E5FCAA081EBEF881EAA703C3FFCA892D6580DEE9405DE2D2D19475A1B0E6497BCEBEAD87DC914F6C0D7E4A8E7BDE45A18C29E7C01A6FE8977E
+FPexp = 
094DB6E4E2C5C4CE998EC44C4C92181FB3737D1899899CFFE92662DB1DCA79C8E7254A8F303F1DA6F0ADB041B8FFFD9BD91C1B0545B538E18BE0F7DB7DA0CF4DE8682B0D2BFA
+
+#test8
+FP_1 = 
052D2071C4131A0BED8078C5545AEDFD02A42EEC30DC23213ABD3B35B3863623DB900D862C1028AC1FF40D26814E7DFFC3542CF12FDBE895A19BC2725AD13F26ED29C71E3B30
+FP_2 = 
0C944E4BB7CDA4A8D0B4F47C335E36CF8A208E78C1667E1ABD6E6F208D77571DD10DC552F3213C2BD51C3B1C364601A84D9A253F610F9FC2A3FF3BDD79B681DC7A6C91FD0325
+FPadd = 
01EFF1394BE3C2599AC2DCF9E24C9E5B3A17E922ED0BAD361D969F696B9255A6235CA2C277713F33DFF027BC302950E6D944CB234EC3482EDE9A63E9B68DD20C81865C24924A
+FPsub = 
086A4FAA3C4271BE403E1490C6693D9ECB3074B574AC990C57E3D701FB7A16A193C37849E0AF12245FF7F290D273AB18AD638EBF10F488FC649D20FAFF14AC4158CD3217E416
+FP_1nres = 
052D2071C4131A0BED8078C5545AEDFD02A42EEC30DC23213ABD3B35B3863623DB900D862C1028AC1FF40D26814E7DFFC3542CF12FDBE895A19BC2725AD13F26ED29C71E3B30
+FP_2nres = 
0C944E4BB7CDA4A8D0B4F47C335E36CF8A208E78C1667E1ABD6E6F208D77571DD10DC552F3213C2BD51C3B1C364601A84D9A253F610F9FC2A3FF3BDD79B681DC7A6C91FD0325
+FPmulmod = 
09638D87831782AFC1930475F6EB52B3E591637F6AAA9F058F8BD20A6416FB1EC4BC6613AE9E9444D774CC156E5EEC024503F76BA400B7684B982F029442FA7D5BAA2554C126
+FPsmallmul = 
044ECBE518C80F65DCAD06DE5B47B88E22635873D8F4833ABBA52F5282FC7693F7DCF6F9C16125CD002821ED76CF5FB9FA4D2C44181E555C1B13C945323EAAA09171D04A4BBF
+FPsqr = 
03EAD200A482544F806689BB415A7D8B52E135996B83EB339D603DE1869C9D7CA278FBDC4BB760B543E74195C2D74C1B0064F058B9F10667377892B207CB71FB73D688C8C48A
+FPreduce = 
052D2071C4131A0BED8078C5545AEDFD02A42EEC30DC23213ABD3B35B3863623DB900D862C1028AC1FF40D26814E7DFFC3542CF12FDBE895A19BC2725AD13F26ED29C71E3B30
+FPneg = 
0AA45D126BE9E24F35F21782511198745008A555D45AD0E49FD7CFB721E50177ADB122907BAFFCF7F52C1360061CB0C174555A1C124C5793C564D7F3C328AFCFF8E635D870DB
+FPdiv2 = 
02969038E2098D05F6C03C62AA2D76FE81521776186E11909D5E9D9AD9C31B11EDC806C3160814560FFA069340A73EFFE1AA167897EDF44AD0CDE1392D689F937694E38F1D98
+FPinv = 
075DC8BCD9762D10E208D9BF3A9C7E03F04ECB2FC8ADA97B2705AE128FE827DD4E7787175DE17CE75843C8CC60068B386D1FEBF8DF940D167FE41397C5776C409B6948C1DB0B
+FPexp = 
0DBA2B4C3F564912F87A47183DA871F1F871C6833BA897A69F8EC003F841A0DDADDE83453C0BF66F32C5DE520B9DD96E7D8F1A7D5CDF3E28992EA24BA47E82EB6A00934EB10A
+
+#test9
+FP_1 = 
0B663A43056B2F6392AB920EBC574F89D2181216C6E0B0B699B9AB3E2721CCFFAD25A9C64AA36A59D29DEB4BC38287FA6E76084D4C4ADE26A96D798E70B9DA92FE4B445D8056
+FP_2 = 
7DDFDF1CB03449D788E645B4BCE8A6D9A5832E8C419201AFD1DDD3C0A95FEC88B492070627C24C2B5FA352EFC6CBBF1983A089313A8A65025F2F9505996911B62F536DB916
+FPadd = 
0BE41A22221B63AD6A34785471143830ABBD9545532242B8498B8911E7CB2CEC35DA3BCD50CB2CA5FDFD8E9EB34953B987F9A8D67D85688BABCCA923765343A4B47A97CB396C
+FPsub = 
0AE85A63E8BAFB19BB22ABC9079A66E2F8728EE83A9F1EB4E9E7CD6A66786D13247117BF447BA80DA73E47F8D3BBBC3B54F267C41B1053C1A70E49F96B207181481BF0EFC740
+FP_1nres = 
0B663A43056B2F6392AB920EBC574F89D2181216C6E0B0B699B9AB3E2721CCFFAD25A9C64AA36A59D29DEB4BC38287FA6E76084D4C4ADE26A96D798E70B9DA92FE4B445D8056
+FP_2nres = 
7DDFDF1CB03449D788E645B4BCE8A6D9A5832E8C419201AFD1DDD3C0A95FEC88B492070627C24C2B5FA352EFC6CBBF1983A089313A8A65025F2F9505996911B62F536DB916
+FPmulmod = 
083753585CCD0BAA3DA96DFD4C2CC529EF8DB26F6343525A1F4AF88A4761F502CBC63A6F398E0A6590C3B3ACC96EDFD9237A4642DB121ADE78A909FA2DDE287E931BB97F69C5
+FPsmallmul = 
0343D800E644F365C291C29DD5716E48F236E715A0463AF9072D63F3B1637CBC02B0512054212005A64A4D47EF2B087FCAF9A1A82BD2EC60CD4286C5956D00FDA480C0E84F0F
+FPsqr = 
0F6793DA7AECA1720D19C4C8B5C08D41B9CC0CF0B2EFBC2E91530D943FD285B4D7C0B0067516F81B5A4DEA6C5F579DF2F6B7A8898DAFC13E6A16453D4125094700F7BB92F9D3
+FPreduce = 
0B663A43056B2F6392AB920EBC574F89D2181216C6E0B0B699B9AB3E2721CCFFAD25A9C64AA36A59D29DEB4BC38287FA6E76084D4C4ADE26A96D798E70B9DA92FE4B445D8056
+FPneg = 
046B43412A91CCF790C6FE38E91536E78094C22B3E56434F40DB5FAEAE496A9BDC1B86505D1CBB4A4282353AC3E8A6C6C9337EBFF5DD6202BD9320D7AD401463E7C4B8992BB5
+FPdiv2 = 
05B31D2182B597B1C955C9075E2BA7C4E90C090B6370585B4CDCD59F1390E67FD692D4E32551B52CE94EF5A5E1C143FD373B0426A6256F1354B6BCC7385CED497F25A22EC02B
+FPinv = 
02FFC6B1E7CA5C591E24BEC39290CDD59BD491EE172D7460F1EB50216B55226274D9CBE86C7DCDD6B1D2022CA1ACB00D98CACECDB4968E87D0494F2B04717FC98591E5603F5C
+FPexp = 
02C2B2BA0448F6BCBD0A769D68D357251C1FB75F01A32FA6A96B93B64F2B1687991EE84B71F682822D187CF389EC4EC123C91ECE755F91EDC40B398E8C53B83D4216ABB2C80D
+
+#test10
+FP_1 = 
0EB50A10A71788E4BCF8B48D23AD3D581A64C81DA989EC5C94EE6BEDC683D032A4DA38E3959C4312DE4311581CF0C0931E8C16176C9E5639BEC4763CF70FDA66E21EC5E89B0D
+FP_2 = 
05499BDE29D4F357BADEAE31BDA0356709E283D0CB4089AFB23E1606D9F24B32AB21738D77EFBC4A3E83C0EEC361A235B430EA14C2DF7011F97BE5225A92D64526E8AF2EBFD4
+FPadd = 
042D286AA0EF7FE15464D2773BE0EC4DD19A77AC6F9382066C977707CB0AE3C9C6BA7C5A65CBD9B907A6B1C058E734079B13791EED558622513FC0F933A8C1B522F77820AED6
+FPsub = 
096B6E327D42958D021A065B660D07F11082444CDE4962ACE2B055E6EC9184FFF9B8C5561DAC86C89FBF5069598F1E5D6A5B2C02A9BEE627C548911A9C7D0421BB3616B9DB39
+FP_1nres = 
0EB50A10A71788E4BCF8B48D23AD3D581A64C81DA989EC5C94EE6BEDC683D032A4DA38E3959C4312DE4311581CF0C0931E8C16176C9E5639BEC4763CF70FDA66E21EC5E89B0D
+FP_2nres = 
05499BDE29D4F357BADEAE31BDA0356709E283D0CB4089AFB23E1606D9F24B32AB21738D77EFBC4A3E83C0EEC361A235B430EA14C2DF7011F97BE5225A92D64526E8AF2EBFD4
+FPmulmod = 
09023174396B841EFDCC58BDC61997BC72D1DF27639B73C8447CAE6F4DFD3A6C8D7D92531F268A7877CD30BE359FF4F6FF309AC1CB8C364CC6870D1460F55E5386964658A87D
+FPsmallmul = 
04B4FB00D70679BB22AFFAFE93F3AB751FDC5AD67074A7692212D4F640612D829D3B8817F2594BF7F07D88B65EA2E0F43C831D72EAC51CCCD4A730CA98D52156BEA3D66A021F
+FPsqr = 
0C5A04B4B4C47570854B44CA6E378C63FB263B81A854CE8358982303F0E8592789D1D95715AFF04AE04FB5753F99DC0635CFEB9F2FB5D886858E5816A1411C89471935D6DF12
+FPreduce = 
0EB50A10A71788E4BCF8B48D23AD3D581A64C81DA989EC5C94EE6BEDC683D032A4DA38E3959C4312DE4311581CF0C0931E8C16176C9E5639BEC4763CF70FDA66E21EC5E89B0D
+FPneg = 
011C737388E573766679DBBA81BF491938480C245BAD07A945A69EFF0EE76768E466F7331223E29136DD0F2E6A7A6E2E191D70F5D589E9EFA83C242926EA149003F1370E10FE
+FPdiv2 = 
0F4343CA6B8A429FF035A26A648CE1E4B688CE2FD760703137C1BB6D4DF783E7170DB47D1EAE345B79B198EF522DF7AA2B1ACE9257634B3192E288518A84E4AEE417616FA38C
+FPinv = 
0E15E6DFBFD0C33C3F7387AB8973E443FFAC31174266A98723BEAC4F7D79C8647322E131F177FB4CB4D4C0FB199683330DA8A12E99EB36FD5F8073F25264A3F15F68782B3B41
+FPexp = 
09CC5D59781B686B6EAF22D6B9E8DAEB9F6DFF7648267404574C3188F10233F0358C0DF93CC9FC8DD5188D56F5273DB26874A8061966CF9836557108C14FCC503377059910DD

http://git-wip-us.apache.org/repos/asf/incubator-milagro-crypto-c/blob/8d28d2c3/testVectors/fp/test_vector_BN254.txt
----------------------------------------------------------------------
diff --git a/testVectors/fp/test_vector_BN254.txt 
b/testVectors/fp/test_vector_BN254.txt
new file mode 100644
index 0000000..fe3c6f0
--- /dev/null
+++ b/testVectors/fp/test_vector_BN254.txt
@@ -0,0 +1,161 @@
+# FP ARITHMETICS - CURVE: BN254_T, Modulo = 
2523648240000001ba344d80000000086121000000000013a700000000000013, BIGmax: 2^254
+
+#test1
+FP_1 = 04
+FP_2 = 0164D24F
+FPadd = 0164D253
+FPsub = 2523648240000001BA344D80000000086121000000000013A6FFFFFFFE9B2DC8
+FP_1nres = 04
+FP_2nres = 0164D24F
+FPmulmod = 0593493C
+FPsmallmul = 28
+FPsqr = 10
+FPreduce = 04
+FPneg = 2523648240000001BA344D80000000086121000000000013A70000000000000F
+FPdiv2 = 02
+FPinv = 0948D920900000006E8D1360000000021848400000000004E9C0000000000005
+FPexp = 09E15FD021782BF3899722994C8148486BEBF3CD2923D2964FB59BBF83CD285A
+
+#test2
+FP_1 = 984E
+FP_2 = 068B8CD5CC3A43
+FPadd = 068B8CD5CCD291
+FPsub = 2523648240000001BA344D80000000086121000000000013A6F974732A345E1E
+FP_1nres = 984E
+FP_2nres = 068B8CD5CC3A43
+FPmulmod = 03E4DA23DA66D1886A
+FPsmallmul = 05F30C
+FPsqr = 5A9CB7C4
+FPreduce = 984E
+FPneg = 2523648240000001BA344D80000000086121000000000013A6FFFFFFFFFF67C5
+FPdiv2 = 4C27
+FPinv = 0E6A0EEB8D073590F928CFBFF79885F469E0966A6459FA4735EC9C79CEF77A4C
+FPexp = 046201D0A77E59DE24DEFA31509C1654B749F8AB39A9154AEEB45DBCE733AF38
+
+#test3
+FP_1 = 135CC6987EF9BB4A45
+FP_2 = 1E986B0CD93984F54876
+FPadd = 1EABC7D371B87EB092BB
+FPsub = 2523648240000001BA344D80000000086120FFFFFFFFE18E98B9BF4574C601E2
+FP_1nres = 135CC6987EF9BB4A45
+FP_2nres = 1E986B0CD93984F54876
+FPmulmod = 025066748935B2801C6D75B79B99AA7140A3CE
+FPsmallmul = C19FC1F4F5C150E6B2
+FPsqr = 0176E719FA84948CF8DFAAE8EB6BD059F699
+FPreduce = 135CC6987EF9BB4A45
+FPneg = 2523648240000001BA344D800000000861210000000000004A3967810644B5CE
+FPdiv2 = 1291B24120000000DD1A26C000000004309080000000001381E34C3F7CDDA52C
+FPinv = 079408E1D5C3527615CB230EA5E64686A3D822DBBB445FE933155FF124B603B7
+FPexp = 0FC77764525B568E6798E361F77E62E3040378922CC8B49988637CDBE1FB6BBE
+
+#test4
+FP_1 = 96DC8DF9EC19C5D5E81B
+FP_2 = 12D733858FCCB04527499D5471
+FPadd = 12D7341C6C5AAA31410F733C8C
+FPsub = 2523648240000001BA344D80000000086120FFED28CD11606849A6F27C3893BD
+FP_1nres = 96DC8DF9EC19C5D5E81B
+FP_2nres = 12D733858FCCB04527499D5471
+FPmulmod = 0B1A5393751B795F1D04D6030A5CE3B3B7A2C68F234FEB
+FPsmallmul = 05E49D8BC33901BA5B110E
+FPsqr = 58E7346534F942343B76958DE322073B9D5EF2D9
+FPreduce = 96DC8DF9EC19C5D5E81B
+FPneg = 2523648240000001BA344D80000000086120FFFFFFFF6937190613E63A2A17F8
+FPdiv2 = 1291B24120000000DD1A26C0000000043090800000004B781A7CF60CE2EAF417
+FPinv = 2482E9FEE32F5A72731D0503AF95A99FC2336E2596FB69061A14FF02BFEE39D4
+FPexp = 01C70AF411E329E2BCA17D56A92E87BD0D4212C22499F173D7A96CCC98215257
+
+#test5
+FP_1 = 29DFC49754E80ADD444735DCF0E2C5
+FP_2 = 4361E0D1F2B787A8D476431007F0D4BC
+FPadd = 438BC0968A0C6FB3B1BA8A45E4E1B781
+FPsub = 2523648240000001BA344D80000000081DE8FEF2A49D6075AFCE0425D5000E1C
+FP_1nres = 29DFC49754E80ADD444735DCF0E2C5
+FP_2nres = 4361E0D1F2B787A8D476431007F0D4BC
+FPmulmod = 0B0593033BF75D98965E809C6D8D8F423B80ECC3F04878C9DC59DDB861ACAC
+FPsmallmul = 01A2BDADE951106CA4AAC81AA168DBB2
+FPsqr = 06D970908FD0533663E47E5918E0AEABC313FD02FAC772DE13FE92406B99
+FPreduce = 29DFC49754E80ADD444735DCF0E2C5
+FPneg = 2523648240000001BA344D800000000860F7203B68AB1808C9BBB8CA230F1D4E
+FPdiv2 = 1291B24120000000DD1A26C00000000430A56FE24BAA740F4222239AEE78716C
+FPinv = 043424CE44035EA0FA754C2E818AB0F26778795F728A20D8690D9A542F391658
+FPexp = 0C7922FB0DC1EE256DA042CE75976621A5CBF59A624E1F15281F061F2282F03A
+
+#test6
+FP_1 = 012F6C4C1177810C
+FP_2 = 368B9B48A3C8C2B501710C4A5D4659000E6E28
+FPadd = 368B9B48A3C8C2B501710C4B8CB2A51185EF34
+FPsub = 2523648240000001BA344D7FFFC9746D187D373D4AFE8F075DD225F3116912F7
+FP_1nres = 012F6C4C1177810C
+FP_2nres = 368B9B48A3C8C2B501710C4A5D4659000E6E28
+FPmulmod = 40A64FE5A754FBAF6A38560985EF4464C09A954BB51922C751E0
+FPsmallmul = 0BDA3AF8AEAB0A78
+FPsqr = 0167A189E19E3AAF6FD60CD2351890
+FPreduce = 012F6C4C1177810C
+FPneg = 2523648240000001BA344D80000000086121000000000013A5D093B3EE887F07
+FPdiv2 = 97B62608BBC086
+FPinv = 1CC0FF32C42153CFA59B92DE86088C9471E1B6AACE7D3D1675A0A3FF2AA4A04E
+FPexp = 0F10B0D2D09800E9B4EC4BC9F67F201E6C35441E5FCF51EECEFF05D9E1FAE1F7
+
+#test7
+FP_1 = 569A1EBBCBD557482377C3CB130808
+FP_2 = 02460A6FF7C60CF7E62269730FA499EF38FA1634866264
+FPadd = 02460A6FF7C60CF83CBC882EDB79F1375C71D9FF996A6C
+FPsub = 2523648240000001BA320775900839FB699177B548BC30D0FFEA7DAD968CA5B7
+FP_1nres = 569A1EBBCBD557482377C3CB130808
+FP_2nres = 02460A6FF7C60CF7E62269730FA499EF38FA1634866264
+FPmulmod = 1A0BC6E0E4A0BF424F424063D7D50810BF218A5E159249BF22AA01C4AE104CE8
+FPsmallmul = 0362053355F65568D162ADA5EEBE5050
+FPsqr = 1D4BE96F2A9520DAE70D998EA805006C8F1438C89DB363BCDC56E1708040
+FPreduce = 569A1EBBCBD557482377C3CB130808
+FPneg = 2523648240000001BA344D800000000860CA65E144342ABC5EDC883C34ECF80B
+FPdiv2 = 2B4D0F5DE5EAABA411BBE1E5898404
+FPinv = 138461EC81F8CF5E2D3A76ED6D187BFCF9D5C347F6250452B76985DCF5407D9D
+FPexp = 201702795BC3A278021AE876B427F3DB7E20507C4B1F950D49D1FC96A172F60A
+
+#test8
+FP_1 = 06C2072D868A2771383918C0A273EA732D6A0AB605EBF5
+FP_2 = E651303E01BB2BBC6C763B8F05B6E87C78DB61A348478E5615
+FPadd = E651370008E8B24693E773C81E778AF0634E8F0D52FD94420A
+FPsub = 252364823FFFFF1B690AD185725ACDC35C1DAA1309B9F7853ECBC6C26E7795F3
+FP_1nres = 06C2072D868A2771383918C0A273EA732D6A0AB605EBF5
+FP_2nres = E651303E01BB2BBC6C763B8F05B6E87C78DB61A348478E5615
+FPmulmod = 10011DD62CD30D291556A1F153090787A645C101C8DFF6862F43F35918E20F79
+FPsmallmul = 439447C741658A6C323AF7865887287FC6246B1C3B3792
+FPsqr = 245B099163E0B4C0A1C33619D19C2E48520E3EFEAEC0D2EE130B5F70B6F5C6E3
+FPreduce = 06C2072D868A2771383918C0A273EA732D6A0AB605EBF5
+FPneg = 2523648240000001BA2D8B78D27975E0EFE8C6E73F5D8C2933D295F549FA141E
+FPdiv2 = 1291B24120000000DD1D87C396C34517E92C9C8C605139FF0D16B5055B02F604
+FPinv = 0A9E8CF0E395A1476434527909C9607B6D0387549268F66E0D123A01DF9E4A21
+FPexp = 011D4F77AB3224D6DD1E016AE5CBF9F2B0451CA2A8FD1E91CA7A20854D7525FE
+
+#test9
+FP_1 = 01F5E9306BB1F89E4E76352D2B589F
+FP_2 = 013CB58B9E15D01545B5B657743DE1C7AF9AA805F109CD30119B0C9A3E
+FPadd = 013CB58B9E15D01545B5B657743DE3BD98CB13B7E9A81BA646C837F2DD
+FPsub = 25236481034A7463A464383A4A49A89423412E3995C3AC1B3B814623921EBE74
+FP_1nres = 01F5E9306BB1F89E4E76352D2B589F
+FP_2nres = 013CB58B9E15D01545B5B657743DE1C7AF9AA805F109CD30119B0C9A3E
+FPmulmod = 2228A52AFF6AE505F546C3069765B6C2442788544AE2612937755F87DB52ACF2
+FPsmallmul = 139B1BE434F3B62F109E13C3B17636
+FPsqr = 03D80A8BEEB3C9A23AC26ACDDE3C892C590C2FAA8DF6818A54CA17B2C1
+FPreduce = 01F5E9306BB1F89E4E76352D2B589F
+FPneg = 2523648240000001BA344D8000000008611F0A16CF944E1B08B189CAD2D4A774
+FPdiv2 = 1291B24120000000DD1A26C00000000430917AF49835D90622A73B1A9695AC59
+FPinv = 0B3E1204E9C8665211BBB6E73A6889BB37748580EBC54EF1138168E0D531CD6E
+FPexp = 1EF31E72A62B794478ED6D5693B2FADF7966FFEC23A38247F97C82BE3B3ECB51
+
+#test10
+FP_1 = 34
+FP_2 = 3C6B618F42CB9C1FF444CA38BCD50888B97A1891D7B8B56455443410A15CEB49
+FPadd = 1747FD0D02CB9C1E3A107CB8BCD5088058591891D7B8B550AE443410A15CEB6A
+FPsub = 0DDB67753D3463E38023D0C7432AF78808C7E76E28474AC2F8BBCBEF5EA31511
+FP_1nres = 34
+FP_2nres = 1747FD0D02CB9C1E3A107CB8BCD5088058591891D7B8B550AE443410A15CEB36
+FPmulmod = 1632D65C915BB5EC84CFA5865B45B905CDF8FD9FD184D1EE85DA9360C6DFC498
+FPsmallmul = 0208
+FPsqr = 0A90
+FPreduce = 34
+FPneg = 2523648240000001BA344D80000000086121000000000013A6FFFFFFFFFFFFDF
+FPdiv2 = 1A
+FPinv = 179189A16D89D89EA279CEB89D89D8A2DB2D8EC4EC4EC4F8C784EC4EC4EC4ED1
+#FPexp = 15F9F387C238C9105D3526C4977629635C6A8EB0160DA8E3886C70423C79ADD2

http://git-wip-us.apache.org/repos/asf/incubator-milagro-crypto-c/blob/8d28d2c3/testVectors/fp/test_vector_BN254CX.txt
----------------------------------------------------------------------
diff --git a/testVectors/fp/test_vector_BN254CX.txt 
b/testVectors/fp/test_vector_BN254CX.txt
new file mode 100644
index 0000000..ba56c79
--- /dev/null
+++ b/testVectors/fp/test_vector_BN254CX.txt
@@ -0,0 +1,161 @@
+# FP ARITHMETICS - CURVE: BN254_CX, Modulo = 
0x2400000008702a0db0bddf647a6366d3243fd6ee18093ee1be6623ef5c1b55b3, BIGmax: 
2^256
+
+#test1
+FP_1 = 03
+FP_2 = F63C49
+FPadd = F63C4C
+FPsub = 2400000008702A0DB0BDDF647A6366D3243FD6EE18093EE1BE6623EF5B25196D
+FP_1nres = 03
+FP_2nres = F63C49
+FPmulmod = 02E2B4DB
+FPsmallmul = 1E
+FPsqr = 09
+FPreduce = 03
+FPneg = 2400000008702A0DB0BDDF647A6366D3243FD6EE18093EE1BE6623EF5C1B55B0
+FPdiv2 = 1200000004381506D85EEFB23D31B369921FEB770C049F70DF3311F7AE0DAADB
+FPinv = 1800000005A01C09207E94EDA6ECEF376D7FE49EBAB0D4967EEEC29F92BCE3CD
+FPexp = 15EC1729458B6C747A3FD2C2AD53FA592D9E026C2F53625870FAFCE7ECC2CD6F
+
+#test2
+FP_1 = 0FDEE90CC8BB84
+FP_2 = 044FD88584AB3E
+FPadd = 142EC1924D66C2
+FPsub = 0B8F1087441046
+FP_1nres = 0FDEE90CC8BB84
+FP_2nres = 044FD88584AB3E
+FPmulmod = 446EDA79C04AD87C4771EE95F8
+FPsmallmul = 9EB51A7FD75328
+FPsqr = FBE16885DA64B9B541E79A1C10
+FPreduce = 0FDEE90CC8BB84
+FPneg = 2400000008702A0DB0BDDF647A6366D3243FD6EE18093EE1BE5645064F529A2F
+FPdiv2 = 07EF7486645DC2
+FPinv = 027425A032B48E8C1D60F34246339399713F1CBB4A78322F00D5AF7923299AC9
+FPexp = 0CAD30B8796651706CEC2628BDD4E56228E1794B805B4F378B4C6BD1E9F4289B
+
+#test3
+FP_1 = 0926BA03CD7CE07559
+FP_2 = 06D13E62643925C6E811
+FPadd = 06DA651C6806A2A75D6A
+FPsub = 2400000008702A0DB0BDDF647A6366D3243FD6EE18093819A6BDC383B334E2FB
+FP_1nres = 0926BA03CD7CE07559
+FP_2nres = 06D13E62643925C6E811
+FPmulmod = 3E6334D960FD11844DA9BFAA6532551672E9
+FPsmallmul = 5B83442606E0C4957A
+FPsqr = 53BEF004BD4F82CF21707A3D05C98A78F1
+FPreduce = 0926BA03CD7CE07559
+FPneg = 2400000008702A0DB0BDDF647A6366D3243FD6EE18093ED897AC2021DF3AE05A
+FPdiv2 = 1200000004381506D85EEFB23D31B369921FEB770C049F75729013DE6C7DE586
+FPinv = 19E77B8E2F6F0521470220ED6A4C53B08F8A9048BBC2107421BB0FEDBD642C55
+FPexp = 18FEC80C2F12C12FCEF009BCC5598E9A9697B2A3AE7D7D1BDFDA6CA8F2965DA0
+
+#test4
+FP_1 = 3A
+FP_2 = 4C6D1E701AECF662AF947612CE
+FPadd = 4C6D1E701AECF662AF94761308
+FPsub = 2400000008702A0DB0BDDF647A6366D3243FD6A1AAEACEC6D16FC13FC7A5431F
+FP_1nres = 3A
+FP_2nres = 4C6D1E701AECF662AF947612CE
+FPmulmod = 1150B8E56619AFD25BC7A2C042AC
+FPsmallmul = 0244
+FPsqr = 0D24
+FPreduce = 3A
+FPneg = 2400000008702A0DB0BDDF647A6366D3243FD6EE18093EE1BE6623EF5C1B5579
+FPdiv2 = 1D
+FPinv = 23611A7B9E5C93426B7CCE4CAD3E60A35D00F21EF44FB4F855995847EC2C84C6
+FPexp = 0B9A0C28A52AF2CB38F36673EA1371B188E3B2E8907708A470874E46F7FAFFA7
+
+#test5
+FP_1 = 662AA485C6
+FP_2 = 8D85E34D88C997924869F71B3BAB01CC
+FPadd = 8D85E34D88C997924869F781664F8792
+FPsub = 2400000008702A0DB0BDDF647A6366D296B9F3A08F3FA74F75FC2D3A4B14D9AD
+FP_1nres = 662AA485C6
+FP_2nres = 8D85E34D88C997924869F71B3BAB01CC
+FPmulmod = 387AEB7BE8DB142E547B7A76099AB544309CE25FC8
+FPsmallmul = 03FDAA6D39BC
+FPsqr = 28C60234FF68A3975524
+FPreduce = 662AA485C6
+FPneg = 2400000008702A0DB0BDDF647A6366D3243FD6EE18093EE1BE6623893176CFED
+FPdiv2 = 33155242E3
+FPinv = 1925880FCD45734F8F6AD2C590FA7435ACDEA67102BA6005E52C361821DC4F3E
+FPexp = 1759AD139FC86045CF4912402E5B9C4F62321DC45C47A8F0A71E329B0EFCB73C
+
+#test6
+FP_1 = 01B72A1E9F9D343ADCAE7BBEFCF7F5FFA646354E
+FP_2 = 035BA7AEA924F3FD4A94BE3BEFF23B69323EDF0B
+FPadd = 0512D1CD48C22838274339FAECEA3168D8851459
+FPsub = 2400000008702A0DB0BDDF6478BEE9431AB8172BAA22FC64CB6BDE85D022ABF6
+FP_1nres = 01B72A1E9F9D343ADCAE7BBEFCF7F5FFA646354E
+FP_2nres = 035BA7AEA924F3FD4A94BE3BEFF23B69323EDF0B
+FPmulmod = 18A372B94476F2F92A5BA7380D551CD2A028040295374E9BEAFBEEF2373EAA33
+FPsmallmul = 1127A5323C240A4C9ED0D575E1AF9BFC7EBE150C
+FPsqr = 1E437838C7B6B63D4FCBCAD4AB626A777761676B9D21CE3EBDBFF880D5426EC7
+FPreduce = 01B72A1E9F9D343ADCAE7BBEFCF7F5FFA646354E
+FPneg = 2400000008702A0DB0BDDF6478AC3CB484A2A2B33B5AC322C16E2DEFB5D52065
+FPdiv2 = DB950F4FCE9A1D6E573DDF7E7BFAFFD3231AA7
+FPinv = 0BD12F0A134E7AA18FE4F5DF23E440ECD5A2C08710F657B97047B7B814880BD4
+FPexp = 1A618E707597662CDD92C5E16731C6C470D13EA1737419D3A2D3B1A1B7E14F89
+
+#test7
+FP_1 = 615A00E0DE74F102D2
+FP_2 = 055A3D0C45FE032AF5E1A0A36776961334AD0F94BAD786
+FPadd = 055A3D0C45FE032AF5E1A0A36776F76D358DEE09ABDA58
+FPsub = 2400000008702A0DB0B885276E1D68CFF949F54D74A1C8AD053257BE3C5180FF
+FP_1nres = 615A00E0DE74F102D2
+FP_2nres = 055A3D0C45FE032AF5E1A0A36776961334AD0F94BAD786
+FPmulmod = 020912DFD071F81BF35AC0B0F825C77BA0ED4BE111F97575B83BE9B31419D7EC
+FPsmallmul = 03CD8408C8B0916A1C34
+FPsqr = 2505544F06B1CE63A714745BB1AC9F6BF444
+FPreduce = 615A00E0DE74F102D2
+FPneg = 2400000008702A0DB0BDDF647A6366D3243FD6EE18093E8064654310E72A52E1
+FPdiv2 = 30AD00706F3A788169
+FPinv = 093D8F1E78B5D38C8965371D56B35388F42C2E481C9C42D6C8A06D0213F6F171
+FPexp = 12F2EC3B7B5C2716F870359B4AD7B7F0854263955660A0BDB5293D0DB0EF7A30
+
+#test8
+FP_1 = 03B69B6A04FF4307CF52726509C21A91E0BEAB674CCBB1A322A7
+FP_2 = 1AC3D3C722ABCAD9CD8A508A6559EDBC444B87FA22BB813B116D
+FPadd = 1E7A6F3127AB0DE19CDCC2EF6F1C084E250A33616F8732DE3414
+FPsub = 24000000087013007860C1B7F291689B461A7B5644DEDB54E1D34DFF8C8366ED
+FP_1nres = 03B69B6A04FF4307CF52726509C21A91E0BEAB674CCBB1A322A7
+FP_2nres = 1AC3D3C722ABCAD9CD8A508A6559EDBC444B87FA22BB813B116D
+FPmulmod = 124042C2E296B75944354EE5F85DDD7C55D7F1095D1BE65C54A1E47E9E98DE41
+FPsmallmul = 2522122431F89E4E193877F2619509B2C772B208FFF4F05F5A86
+FPsqr = 082F6111A3143E78787035DE51B081CD09A98C7378FDDE00630041C6202449C0
+FPreduce = 03B69B6A04FF4307CF52726509C21A91E0BEAB674CCBB1A322A7
+FPneg = 24000000087026571553DA65375B9780B1DACD2BFD775E2312FED723AA78330C
+FPdiv2 = 12000000043816E22613F231DEB59B12CB527058194D8FD034E6B85D86DF3C2D
+FPinv = 18A5A211E6C85C16229ACF0734F0E19BDACC95AC2464C26B3DEC07BF7C5BAB4B
+FPexp = 1D738D2AB989242CA5B286D08309FB96F105B57CA46CB875D446E2B7366E0054
+
+#test9
+FP_1 = 1F
+FP_2 = 71AF553802AD36AFC6A37C8860B6C0B4E67E8102744E99756732D7D925
+FPadd = 71AF553802AD36AFC6A37C8860B6C0B4E67E8102744E99756732D7D944
+FPsub = 23FFFF8E591AF20B03872F9DD6E6DE726D7F220799883C6D6FCCAE8829437CAD
+FP_1nres = 1F
+FP_2nres = 71AF553802AD36AFC6A37C8860B6C0B4E67E8102744E99756732D7D925
+FPmulmod = 0DC43B51C852F99F490DCC1483B62155E7E9519F4C158495377F28234B7B
+FPsmallmul = 0136
+FPsqr = 03C1
+FPreduce = 1F
+FPneg = 2400000008702A0DB0BDDF647A6366D3243FD6EE18093EE1BE6623EF5C1B5594
+FPdiv2 = 1200000004381506D85EEFB23D31B369921FEB770C049F70DF3311F7AE0DAAE9
+FPinv = 0F18C6318FECF8DC736865F0545B3BA2DDA7289564EB1A5EAAAEF64B9A3D02E8
+FPexp = 1B9D2A6192A9C1033DD7D6044F3CC379C7568AFB4091239A9DB058A4033DF3D3
+
+#test10
+FP_1 = 0C6C248404156027BDBFA9
+FP_2 = 5FA5A0C32A6BED59681ED08FAF3D7A527C6E2D835BCE5F44409A8CEBCBF15DD5
+FPadd = 17A5A0C3198B993E06A311C6BA76ACAC33EE7FA72BC84DA547D25A6D3B787218
+FPsub = 0C5A5F3CEEE490CFAA1ACD9DBFECBA26F0515746EC59C9857E9BF442701E62ED
+FP_1nres = 0C6C248404156027BDBFA9
+FP_2nres = 17A5A0C3198B993E06A311C6BA76ACAC33EE7FA72BBBE180C3CE450D13BAB26F
+FPmulmod = 215BD9F03141612758F00621CF997E54C20D447486AEBBDCA11D6347B8C63C1E
+FPsmallmul = 7C396D2828D5C18D697C9A
+FPsqr = 9A511B34FAD847147914B255BF3B34D5CA0D079D91
+FPreduce = 0C6C248404156027BDBFA9
+FPneg = 2400000008702A0DB0BDDF647A6366D3243FD6EE17FCD2BD3A620E8F345D960A
+FPdiv2 = 1200000004381506D85EEFB23D31B369921FEB770C0AD58321351CA7C1EC8AAE
+FPinv = 0845BE9CC228B1734F917DE19461FBEFC422CA9DE9C65DEC628E6525B2498708
+#FPexp = 10057B3193D789DE7BA1976B147F24ED514D18EB4EE408B898F73DE8EA49F50E

http://git-wip-us.apache.org/repos/asf/incubator-milagro-crypto-c/blob/8d28d2c3/testVectors/fp/test_vector_BRAINPOOL.txt
----------------------------------------------------------------------
diff --git a/testVectors/fp/test_vector_BRAINPOOL.txt 
b/testVectors/fp/test_vector_BRAINPOOL.txt
new file mode 100644
index 0000000..f728836
--- /dev/null
+++ b/testVectors/fp/test_vector_BRAINPOOL.txt
@@ -0,0 +1,162 @@
+# FP ARITHMETICS - CURVE: BRAINPOOL, Modulo = 
a9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5377; BIGmax = 2^256
+
+#test1
+FP_1 = 0FA670
+FP_2 = 03701D11
+FPadd = 037FC381
+FPsub = A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1C0DDCD6
+FP_1nres = 0FA670
+FP_2nres = 03701D11
+FPmulmod = 35CDE7E4BD70
+FPsmallmul = 9C8060
+FPsqr = F4ED557100
+FPreduce = 0FA670
+FPneg = A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F5EAD07
+FPdiv2 = 07D338
+FPinv = 116589A84C95C1199FA78ABFCB4EAF149E4303A47438AA0D5B0F385517245735
+FPexp = 74C5E0128715C18282B09FAD13EC1834B41FF5156CC39EF92F98520C07C4EF13
+
+#test2
+FP_1 = 03654DA9
+FP_2 = 0BF515A12E0473
+FPadd = 0BF515A493521C
+FPsub = A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282007530781A59CAD
+FP_1nres = 03654DA9
+FP_2nres = 0BF515A12E0473
+FPmulmod = 289A93086DF7591686EB
+FPsmallmul = 21F5089A
+FPsqr = 0B87E854E91991
+FPreduce = 03654DA9
+FPneg = A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1C0905CE
+FPdiv2 = 54FDABEDD0F754DE1F3305484EC1C6B9371DFB11EA9310141009A40E9169D090
+FPinv = 87B97DD0C5F4C4E8EBD665D79CE2F3734DAD0DC027283F69FB4535668BBE882E
+FPexp = 78BDD2012988D078DB18A504E2FF2A8559306045FBBF660DAB2908BBF8FC0CFB
+
+#test3
+FP_1 = 425D
+FP_2 = 0F591F75D847FF4C6946
+FPadd = 0F591F75D847FF4CABA3
+FPsub = A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52610CF009D6FD520222C8E
+FP_1nres = 425D
+FP_2nres = 0F591F75D847FF4C6946
+FPmulmod = 03FA8D7CCF9221F971E64A6E
+FPsmallmul = 0297A2
+FPsqr = 113415C9
+FPreduce = 425D
+FPneg = A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E111A
+FPdiv2 = 54FDABEDD0F754DE1F3305484EC1C6B9371DFB11EA9310141009A40E8FB74AEA
+FPinv = 4C6E687724EB23DC803BA7A823BED9E34DA38ED4E851330F869070101BCCC89A
+FPexp = 3685C285CDDD7A5D065939CC2D89CC56D9782C4C6BA6B315C04CB2671AF4AFF2
+
+#test4
+FP_1 = 31059D
+FP_2 = 45EBE5B2950BFF7BE60E9EC1AA
+FPadd = 45EBE5B2950BFF7BE60ECFC747
+FPsub = A9FB57DBA1EEA9BC3E660A909D838D726E3BF5DDE9406D931413CC371100976A
+FP_1nres = 31059D
+FP_2nres = 45EBE5B2950BFF7BE60E9EC1AA
+FPmulmod = 0D63AF7456E2BA8B102346C322AF1742
+FPsmallmul = 01EA3822
+FPsqr = 096326398249
+FPreduce = 31059D
+FPneg = A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F3D4DDA
+FPdiv2 = 54FDABEDD0F754DE1F3305484EC1C6B9371DFB11EA9310141009A40E8FCFAC8A
+FPinv = 4E05D801B5CFF86AACAB7DF43CBC667475187A8E962B9F3B60F9C160DF09E949
+FPexp = 7C0623ED1CA12F272CB142987E80157EBACDDEA31E07904F89D4A0C6035872DF
+
+#test5
+FP_1 = 06F196
+FP_2 = AB239D71C951D5B76418FD89AF0C7946
+FPadd = AB239D71C951D5B76418FD89AF136ADC
+FPsub = A9FB57DBA1EEA9BC3E660A909D838D71C31858B20BD44A70BBFA4A937068CBC7
+FP_1nres = 06F196
+FP_2nres = AB239D71C951D5B76418FD89AF0C7946
+FPmulmod = 04A4567EC1171D027137461E8D46C2271DF504
+FPsmallmul = 456FDC
+FPsqr = 303703C3E4
+FPreduce = 06F196
+FPneg = A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6761E1
+FPdiv2 = 0378CB
+FPinv = 17C6D2DA3BDDEDBC5B6534F8EBF7BED5630B8A3459733C892A94716C14BAB44E
+FPexp = 9C1968BB40F982F79210FD7F29D32BBA262F486C9ED6ED57CB78C0788223E2F7
+
+#test6
+FP_1 = 0C7FA8680626B8F32953A529737B811DC8
+FP_2 = 0397A28652B1DD1F13EF32C669D7DEAAB9FCF107
+FPadd = 0397A292D25A45253AA825EFBD7D081E357E0ECF
+FPsub = A9FB57DBA1EEA9BC3E660A9099EBEAF89B32810AE7EFE08B09E092E5E0F28038
+FP_1nres = 0C7FA8680626B8F32953A529737B811DC8
+FP_2nres = 0397A28652B1DD1F13EF32C669D7DEAAB9FCF107
+FPmulmod = 10DFEBCC4D2D65EE5FB95CD6929C25E26309BC537C4F1F9E5A37304D6C04E915
+FPsmallmul = 7CFC94103D83397F9D44739E82D30B29D0
+FPsqr = 2DB89FF4C8044FB0D3243FAECD14AEAC594DD7D18B0ED4A22F3CF2B15CC04E03
+FPreduce = 0C7FA8680626B8F32953A529737B811DC8
+FPneg = A9FB57DBA1EEA9BC3E660A909D838D65EE938E1DAE6D2CFECC6E1EA9A3ED35AF
+FPdiv2 = 063FD43403135C7994A9D294B9BDC08EE4
+FPinv = 36C1BD559CA0246D3FC40E9135F9C536132E482BCE4B2251322720FB4FFB8BEC
+FPexp = 78AFFCB1BF044724B26A2227F579FDB00F2BE0008DBB033369727551C5941F7F
+
+#test7
+FP_1 = 016536B660AC6B
+FP_2 = 0BDB5D25474875D4309E9D0B9F993CE5144FA4052F9CD3
+FPadd = 0BDB5D25474875D4309E9D0B9F993CE515B4DABB90493E
+FPsub = A9FB57DBA1EEA9BC3E5A2F33783C44FC9A0B5786C98686EB3B005DAFD09F630F
+FP_1nres = 016536B660AC6B
+FP_2nres = 0BDB5D25474875D4309E9D0B9F993CE5144FA4052F9CD3
+FPmulmod = 108B719D10BCDB86FBF9F70D258067E08B7DB4D66E5BEE9BE4F9645031
+FPsmallmul = 0DF4231FC6BC2E
+FPsqr = 01F271A45B1398C4CDE85FF4B9
+FPreduce = 016536B660AC6B
+FPneg = A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282011E2E6690DA70C
+FPdiv2 = 54FDABEDD0F754DE1F3305484EC1C6B9371DFB11EA931014100A56A9EAE77FF1
+FPinv = 2BA4423357D355B75BB0C6BC12BCAC077EEBF1196A166120BB0E6328E0226EC3
+FPexp = 4E98A167539AE617449C95318E5C4E99090D438362F839AF9BC53867FD9AB203
+
+#test8
+FP_1 = 0607B70163C95D4654B544666E1A521A7456
+FP_2 = 09BEC2598918D3C5BE0C0CE3C17AA964FF705AC6F0CBFD0B29FC
+FPadd = 09BEC2598918D3C5C413C3E5254406AB54259F2D5EE64F259E52
+FPsub = A9FB57DBA1EE9FFD7C0C8177C9BDD56E185998728907756D09B2C56B747D9DD1
+FP_1nres = 0607B70163C95D4654B544666E1A521A7456
+FP_2nres = 09BEC2598918D3C5BE0C0CE3C17AA964FF705AC6F0CBFD0B29FC
+FPmulmod = 4A156DAE13C7F4CE74A2BED23882A2936C285B1105D32561D67134C3E3FFD2A0
+FPsmallmul = 3C4D260DE5DDA4BF4F14AC004D0735088B5C
+FPsqr = 4186E68E14D5FE46E9213FD57F4A1F9DE7394446E6C0864AD90698C06E82F4A5
+FPreduce = 0607B70163C95D4654B544666E1A521A7456
+FPneg = A9FB57DBA1EEA9BC3E660A909D83876AB73A925A77DFCB72DBACDA02CD53DF21
+FPdiv2 = 0303DB80B1E4AEA32A5AA233370D290D3A2B
+FPinv = 06B966B43D66CDB743D22A3EDA25AD71D64EB77A065CAF976BADEAD69650B269
+FPexp = 1F95E64E918A44E4A7380A98FB4E20BF89B06C0C5E184502CA00E2FFCB14A9D3
+
+#test9
+FP_1 = 2AB2D76DDD0C2DB080D0D9895BCE44EA41DBC858EB62
+FP_2 = 32692AC739661DE7E3359E5A63BE0B5008A11C065368CB35AE83B5BF28
+FPadd = 32692AC739661E12960D0C376FEBBBD0D97AA56221ADB5778A4C0EAA8A
+FPsub = A9FB57A938C3E282D8484D603F53101ADDE126EC0D9375A2FC32544A64117FB1
+FP_1nres = 2AB2D76DDD0C2DB080D0D9895BCE44EA41DBC858EB62
+FP_2nres = 32692AC739661DE7E3359E5A63BE0B5008A11C065368CB35AE83B5BF28
+FPmulmod = 5A4A18F241B1D792736E630A1C24DF2B1D6C59FAFD5070A416CE92881180F7B3
+FPsmallmul = 01AAFC6A4AA279C8E508287F5D960EB1269295D37931D4
+FPsqr = 0FEC05F562203EF3C677B961226F195ADB29F7B33EE9D8734D2F5C38A0CD85BA
+FPreduce = 2AB2D76DDD0C2DB080D0D9895BCE44EA41DBC858EB62
+FPneg = A9FB57DBA1EEA9BC3E65DFDDC615B066408B7552FB9CC459DB29064157156815
+FPdiv2 = 15596BB6EE8616D840686CC4ADE7227520EDE42C75B1
+FPinv = 0BF231A48CDC56191C39B88E87987009B2E0A4371ED2B1878DCDC4A8E88DED2A
+FPexp = 80DAF250193EA58108BA24731C7FEBBF9798275FAA1C267115BB052A74CF2548
+
+#test10
+FP_1 = 8C12EB0B0ECA7CD25E13026DF0A72782A9357A412BFD553790225BE26D33DB
+FP_2 = 107257E9C5112CE0AC188FD5D2C2ED0259D9A482F42C7EBACB95E0A293136E2D
+FPadd = 10FE6AD4D01FF75D7E76A2D840B39429DC82D9FD35587C10032602FE7580A208
+FPsub = 9A1512DCE7EC475864AB8DBD38B14797970B871B22259EC28C0D89D66EC81925
+FP_1nres = 8C12EB0B0ECA7CD25E13026DF0A72782A9357A412BFD553790225BE26D33DB
+FP_2nres = 107257E9C5112CE0AC188FD5D2C2ED0259D9A482F42C7EBACB95E0A293136E2D
+FPmulmod = 611E1462863D178DE74410C7B018FC89D2A39DB52102CE0082527AFA30A6C102
+FPsmallmul = 0578BD2E6E93E8E037ACBE184B66878B1A9C16C68BB7E5542BA15796D844068E
+FPsqr = A7C17CC533A80BA92BD7965313A588DFBE05112FF927838F2AEC7DB50DB9D21F
+FPreduce = 8C12EB0B0ECA7CD25E13026DF0A72782A9357A412BFD553790225BE26D33DB
+FPneg = A96F44F096DFDF3F6C07F78E2F92E64AEB92C0A993FA22D2E88325C13D011F9C
+FPdiv2 = 5543B563567EBA1C88620EC985BA1A4CF87295CF0B290EBEABD1B53C80EDC3A9
+FPinv = 12C36C79BF51C60D745753932016A34C0AC3938A300068C29EB2EF72F9E3F64C
+FPexp = 2EF7F4A4BA2526E8A9284F96113415713A378F75FF96E75EF668596EAE49C570
+

Reply via email to