# FP ARITHMETICS - CURVE: GOLDILOCKS, Modulo = fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff; BIGmax = 2^448 #test1 FP_1 = 4D08C04800 FP_2 = 06F29898FA13 FPadd = 073FA1594213 FPsub = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95A70274DEC FP_1nres = 4D08C04800 FP_2nres = 06F29898FA13 FPmulmod = 021734B2AEAD2E2C955800 FPsmallmul = 03025782D000 FPsqr = 172E43F7E4EC14400000 FPreduce = 4D08C04800 FPneg = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2F73FB7FF FPdiv2 = 2684602400 FPinv = 64E67EAF873A2C88213300BB7883134326885CEF54ABF212D31B443B98B566E159078DAC71CF023E0DD2C620B731EB873C22C01757DDD375 FPexp = DFCAB780ABD0CFBBCB3219730EA9870EE01F08E555C4885621F252F3C91BB228B4CEB7547DE1DCB0856DC51956C701E1B3E8935326283E56 #test2 FP_1 = 0397A1829D18292FBC7D91 FP_2 = A1FEBDF65CB4D1D68408C1 FPadd = A5965F78F9CCFB06408652 FPsub = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6198E38C406357593874CF FP_1nres = 0397A1829D18292FBC7D91 FP_2nres = A1FEBDF65CB4D1D68408C1 FPmulmod = 0245EFAFCBA3B8F7FC49E6C291AF3B9D2613D5CB3251 FPsmallmul = 23EC4F1A22F19BDD5CE7AA FPsqr = 0CE798FDA96FB40579D1E4BAAEF2AC2955E88EEC21 FPreduce = 0397A1829D18292FBC7D91 FPneg = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC685E7D62E7D6D043826E FPdiv2 = 7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800000000000000000000000000000000001CBD0C14E8C1497DE3EC8 FPinv = BE9B1ED846B0C92D98E79544321AEBE3029B2C5233379093DBAD35C8379CA84B50D3EF82A2D95114481C6C09A1787892BC742BC1F3521F62 FPexp = 0ACAB0D6AA37BD18EE3910B1CDCB1EEDED90EBF78C132BBFFABF547AE8B27C7586CF7B265145178FAB509418E033B55ACABFDA7F74A7AD27 #test3 FP_1 = 4A FP_2 = 7B6031FC5CF4B66A0C123818C493FF0C8F FPadd = 7B6031FC5CF4B66A0C123818C493FF0CD9 FPsub = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFF849FCE03A30B4995F3EDC7E73B6C00F3BA FP_1nres = 4A FP_2nres = 7B6031FC5CF4B66A0C123818C493FF0C8F FPmulmod = 23A9CE72F2DEBCBAA77D443728D2C7B9A156 FPsmallmul = 02E4 FPsqr = 1564 FPreduce = 4A FPneg = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 FPdiv2 = 25 FPinv = A2983759F22983759F22983759F22983759F22983759F22983759F21F59F22983759F22983759F22983759F22983759F22983759F2298375 FPexp = AA902EF67DD07D079174A337F2261A0D9F9997F30D93C2DBFEE9D90ACC64A5529740C2288756AD44DD037071DBB71E6D904B997FAA78C2D0 #test4 FP_1 = 034E1CF279E9CE5CBA8B3A2A3BDA9F0C95 FP_2 = 0D4495F75792FCCA07ED060C98487127FC1A593FC86A23 FPadd = 0D4495F75793001824DF7FF666A52BB33644951A6776B8 FPsub = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFF2BB6A08A86D0684150573DD361449633E0FE29AD6A271 FP_1nres = 034E1CF279E9CE5CBA8B3A2A3BDA9F0C95 FP_2nres = 0D4495F75792FCCA07ED060C98487127FC1A593FC86A23 FPmulmod = 2BDA27A8F1C224A5C068F9977821A3893765A9AB90D23D05EE25A0748EA940163F00DC3E5C6A5F FPsmallmul = 210D2178C3220F9F497045A6568A367DD2 FPsqr = 0AEC8355E3B5A5CA1E3AF086935A1EAE5A419D90E9A374D9FA31A7F4EC65B44EB9 FPreduce = 034E1CF279E9CE5CBA8B3A2A3BDA9F0C95 FPneg = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFCB1E30D861631A34574C5D5C42560F36A FPdiv2 = 7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800000000000000000000001A70E793CF4E72E5D459D151DED4F864A FPinv = 4C921F64775F583FFCE6549221A87C5ADD861C30F8A486D249378AA1448CD177B49E36B85F46769AB2916606D57264A26ACE5D5E2E63FA68 FPexp = 09EFDC52C6E8E77FEB36E8738AB39170F209C4352A22A1864E57F9A545AC723B5FD27C5C5282AF7C4BB186DC4C0A3805250AE0CAE4FACB1D #test5 FP_1 = 015A53EAF3F75BD224446D430253ACC37BDA3C899A847D59 FP_2 = FA211B3EB698B2D12F2AC3570A711FD7CEA7B46A49BD325002D89D59 FPadd = FA211B3EB7F306BC23221F292EB58D1AD0FB612DC5976ED99D5D1AB2 FPsub = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE05DEE4C14AC1A119C4CC987B19D34D6B33ABF859321D0A3997ABDFFF FP_1nres = 015A53EAF3F75BD224446D430253ACC37BDA3C899A847D59 FP_2nres = FA211B3EB698B2D12F2AC3570A711FD7CEA7B46A49BD325002D89D59 FPmulmod = 015262BD1F3A236D00634C18C65CDA7F8867D8DBF8C032BC67B911B2922F84E2C88F695437A6D0FF34AD491E22E6662E6E0728F1 FPsmallmul = 0D87472D87A996356AAC449E1744BFA2D6865D60092CE57A FPsqr = 01D486F29DAA798247AFF9465E71F1BC36EFA871843345D9A530BE9BDA1F6BE6C03BEF7D23D213DB678CA2952808F1 FPreduce = 015A53EAF3F75BD224446D430253ACC37BDA3C899A847D59 FPneg = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFEA5AC150C08A42DDBBB92BCFDAC533C8425C376657B82A6 FPdiv2 = 7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000000000AD29F579FBADE9122236A18129D661BDED1E44CD423EAC FPinv = 987F3E425225FA5CD95083DF12F05ECCB2E2B37DD94362AF6319E1469FABDBF691689C8E02943D31F20214637F8F5B8DFA7C840FA74CA485 FPexp = D91D86BFD129E64CCBD5CD633A2D5E99FFEB35366FED955A83E857E73EC81252DFFEA4B79EE76F9E04E306EFA3BA2B8D719F3A3121692858 #test6 FP_1 = 5961642E4E87DF5B38D45BC82FEEC6 FP_2 = 15508429BE1E34E9B33C701F01838BA4979C4A03F53222E6122C5C296224874BEDB9 FPadd = 15508429BE1E34E9B33C701F01838BA4979C4A5D569651349A0BB76236804F7BDC7F FPsub = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEAAF7BD641E0CB164CC38FE0FE7C745B6863B6556C320B6875B2FF0F723740E4010C FP_1nres = 5961642E4E87DF5B38D45BC82FEEC6 FP_2nres = 15508429BE1E34E9B33C701F01838BA4979C4A03F53222E6122C5C296224874BEDB9 FPmulmod = 077119CBE58B6FEE6760D19DF2A4AF2DBD4D8DB73C4FE4CF63A8AB8F2F0ABA4AE7A0140CF8EEECE88E0BFABB7568B2DB16 FPsmallmul = 037DCDE9CF114EB990384B95D1DF53BC FPsqr = 1F34DCB544E631FF280F5625FEC51F6C0654D2A09E248CB69ED2EB68C124 FPreduce = 5961642E4E87DF5B38D45BC82FEEC6 FPneg = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFA69E9BD1B17820A4C72BA437D01139 FPdiv2 = 2CB0B2172743EFAD9C6A2DE417F763 FPinv = D48D7D4855E73685DBA15335001DC1FDFD1B719CFA96F7EDDEDCE8B691FE59E1F7A2F2BD8BEFCA94864516454EF8C40C4289EBD9FBE41F14 FPexp = 01C555411A7A38DD6F38155FBB78923D9A52A0792323503535F4E989702C08B12CCD02B78F1FFD8E26778799D8C7E94DC51C4347DD11B92D #test7 FP_1 = 18730311A148EB6B3CCE80C8D6E32F04A8BCE35008AFF91365CEF7E47DC11CDEB27E1E1E FP_2 = 01BB32CBB8B40E0E82310F09480BCCA1E44ADCFE6D29710BF8AA0B1BE27902BDDA002CA803D60731 FPadd = 01BB32CBD12711202379FA7484DA4D6ABB2E0C0315E6545C015A042F4847FAA257C14986B654254F FPsub = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE44CD345FBEF5031F17DC60F4C2B426F29852063B9372441005EDF78355F526A3C0F036AEA816EC FP_1nres = 18730311A148EB6B3CCE80C8D6E32F04A8BCE35008AFF91365CEF7E47DC11CDEB27E1E1E FP_2nres = 01BB32CBB8B40E0E82310F09480BCCA1E44ADCFE6D29710BF8AA0B1BE27902BDDA002CA803D60731 FPmulmod = 0EAED5B96546DC840ECF6280983D4788B1C5263EF86E5D008F523CDDC4A0B8AD496816D2F434F696018431CFE9AC0E1770BEDC3675E63ED3 FPsmallmul = F47E1EB04CD93230601107D864DFD62E9760E12056DFBAC1FA15AEECE98B20B2F8ED2D2C FPsqr = 0DDDD52EC3C9019A91DDD54CE030169166D76B80577FA145EBD02891424C4EB74D24E0BCBBBEEB83F75EB06A88834C6E7F925A45CF8C84DB FPreduce = 18730311A148EB6B3CCE80C8D6E32F04A8BCE35008AFF91365CEF7E47DC11CDEB27E1E1E FPneg = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE78CFCEE5EB71493C3317F37291CD0FB57431CAFF75006EC9A31081B823EE3214D81E1E1 FPdiv2 = 0C398188D0A475B59E6740646B719782545E71A80457FC89B2E77BF23EE08E6F593F0F0F FPinv = 5342A0334719664DBF1DACF184059F8D8D46ACC48A22EFA968B247F9B287DAD6DDF313C581B55D5753359747837876ADFA9A83F595150F6E FPexp = 78701273D4D320CB944084A4D0E578CC8A8619E3C557AC3E3D0DF986D71EE831FAB062FF519F810288237B0C65D2E04A9A865B72F7240FB0 #test8 FP_1 = 3CD26BDF92F73965279245E5C7447C588B94E8624072CD939F8EB71FF8B4DECEC060B40E647A0C FP_2 = 6005C56C516B6A4C98AB8C2F71FCC1BDFEB8CA8206C15D0F2FE324C982D31B8964C6CA16905EDFD137822C77A1 FPadd = 6005C56C516BA71F048B1F26AB61E950449E91C68319E8A41845653C5066BB181BE6C2CB6F2DA031EB9090F1AD FPsub = FFFFFFFFFFFFFFFFFFFFFF9FFA3A93AE94D285D33406C7C76865D4462CFCC275972E85B87F1BA94AC0840552592E9E4E6FE08F7C8C38026A FP_1nres = 3CD26BDF92F73965279245E5C7447C588B94E8624072CD939F8EB71FF8B4DECEC060B40E647A0C FP_2nres = 6005C56C516B6A4C98AB8C2F71FCC1BDFEB8CA8206C15D0F2FE324C982D31B8964C6CA16905EDFD137822C77A1 FPmulmod = EB235327A2CECF392679683B2B0C9BD9094CBB9AED1E67606042075F80432466810CC43B9854CE254C08CB96F5C242CC6A676C7C61579E95 FPsmallmul = 02603836BBBDA83DF38BB6BAF9C8ACDB7573D113D6847C07C43B93273FB710B41383C7088FECC478 FPsqr = 1BDB811EFABEC405487592A02213CAFE32884C5DF6F1F9BDFD5B53CC239C8FF6E7F8346EDF34A38BD388BBAD91302A3C44C20CF85AA4E507 FPreduce = 3CD26BDF92F73965279245E5C7447C588B94E8624072CD939F8EB71FF8B4DECEC060B40E647A0C FPneg = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC32D94206D08C69AD86DB91A38BB83A7746B179DBF8D326C607148E0074B21313F9F4BF19B85F3 FPdiv2 = 1E6935EFC97B9CB293C922F2E3A23E2C45CA7431203966C9CFC75B8FFC5A6F6760305A07323D06 FPinv = 51BDA874DEA75C31D45124BA0FB052519F6F1938CC1B5394A7058CD8873246937C45D761E58A22637D9A7BC6B3052174040B3CF690F48D33 FPexp = BB4813C883522C87FA08500BB48AFADE249A46B29CE934D4FAF53DC6194D45570C7C9F0FE32A5DF6223B1305F2695CC9E76818AAF350ADEE #test9 FP_1 = 014CF1D7E5F1EDE1F6F5C5911CFBB10C8123E62DB401147F941931901A3FB20CBACD6E796C9F6D56A84BED824C7757D7 FP_2 = 072C0A04F0FD6C6502CEE7631AB0A82F33F5B09DBDB06812BBCA78057994B69B6D120226B24D3CB5DEC90AD3827E0D2180C82E FPadd = 072C0A063DEF444AF4BCC95A1076394C2FA6BD1EE19695C6BCDEF79992C646B5ACC40EE17FBBB6227E36617BCE6B8F6DF82005 FPsub = FFFFFFFFFFF8D3F5FC5BF46B80EF1EFA93DB14E8EDC7BB5BE36635C4A1454A078E9F9CD97ED2A00A941B213CB6C0A44BD4C96F752AF68FA8 FP_1nres = 014CF1D7E5F1EDE1F6F5C5911CFBB10C8123E62DB401147F941931901A3FB20CBACD6E796C9F6D56A84BED824C7757D7 FP_2nres = 072C0A04F0FD6C6502CEE7631AB0A82F33F5B09DBDB06812BBCA78057994B69B6D120226B24D3CB5DEC90AD3827E0D2180C82E FPmulmod = 3226ECF8255F0C708CE66F4BA262DCC3A598875C36B37056633A12C7191E0E07B9394FCA1A720D01E24F6C0F98C35D209D157FBE80D97C24 FPsmallmul = 0D01726EFB734AD3A599B7AB21D4EA7D0B66FDC9080ACCFBC8FBEFA1067CF47F4C0650BE3E3A456292F74716FCA96E66 FPsqr = 913E0382F5E8525204735DF6450B05125D48B366DBA8EF3171E64F8BDF59110A96BD0E21162ACB0962A29D84EB1BA80DDA1685B9D1B326C2 FPreduce = 014CF1D7E5F1EDE1F6F5C5911CFBB10C8123E62DB401147F941931901A3FB20CBACD6E796C9F6D56A84BED824C7757D7 FPneg = FFFFFFFFFFFFFFFFFEB30E281A0E121E090A3A6EE3044EF37EDC19D14BFEEB806BE6CE6FE5C04DF345329186936092A957B4127DB388A828 FPdiv2 = 800000000000000000A678EBF2F8F6F0FB7AE2C88E7DD8864091F3165A008A3FCA0C98C80D1FD9065D66B73CB64FB6AB5425F6C1263BABEB FPinv = 80E6980325898962FB9F2CF561A25DC0C413C5043817446335AA5C083BBFEED98A161AFA5EEBA3B0EC39F9D40A77BD8560CD6A06330615F9 FPexp = 18B52E5F791F6C144A1ED4743DF49B9009F7CF8BA92615470297F3724EE7B71259A8C5DCC213802165705D2F9F78FE1F441BFDE2444A9C24 #test10 FP_1 = 01064D50F8CA46073810EC20C9053F FP_2 = 38BFB57E52DDB40950555E981797334542619D6D609F744FF1B38F5249EB281AC1ADCE3AE0BC88CA0A61DEBECC567FA43C48DA641261DA96 FPadd = 38BFB57E52DDB40950555E981797334542619D6D609F744FF1B38F5249EB281AC1ADCE3AE0BC88CA0A62E50C1D4F49EA4380EB50332ADFD5 FPsub = C7404A81AD224BF6AFAAA167E868CCBABD9E62929F608BB00E4C70ACB614D7E53E5231C51F437735F59F278E84A24AA1CAEF36880E672AA8 FP_1nres = 01064D50F8CA46073810EC20C9053F FP_2nres = 38BFB57E52DDB40950555E981797334542619D6D609F744FF1B38F5249EB281AC1ADCE3AE0BC88CA0A61DEBECC567FA43C48DA641261DA96 FPmulmod = 38C7A69E6D1302BD24D80B0CC3547374C38E460DE12DCB9DEB0A957FE7E0094A35D18499123417E5E2277621926066F92230770DBDA9D56D FPsmallmul = 0A3F0529B7E6BC4830A93947DA3476 FPsqr = 010CC259170D4D751B66611EE7FB3946BB067DFE95550C6B50FD098581 FPreduce = 01064D50F8CA46073810EC20C9053F FPneg = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFEF9B2AF0735B9F8C7EF13DF36FAC0 FPdiv2 = 7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80000000000000000000000000008326A87C6523039C08761064829F FPinv = C6CF417871E514E90C1DE3B9265D378E75229B6598E0623056100CC76079226AF6F0ECB504E60D59FAE64811C801E179BE0C8649F553FC6D FPexp = 65ED0E98AE9A9A0AC19D6F1145386508A2AEEC50EBFAC5F674A3A0AFCC66F1B0A3EE426C5C1A9E1393025D92E5A07C1906A842819B4A6BF7 s