fp_add 0 0 = 0
fp_sub 0 0 = 0
fp_mul_down 0 0 = 0
fp_mul_up 0 0 = 0
fp_div_down 0 0 = ERROR:ZERO_DIVISION
fp_div_up 0 0 = ERROR:ZERO_DIVISION
fp_add 1000000000000000000 1000000000000000000 = 2000000000000000000
fp_sub 1000000000000000000 1000000000000000000 = 0
fp_mul_down 1000000000000000000 1000000000000000000 = 1000000000000000000
fp_mul_up 1000000000000000000 1000000000000000000 = 1000000000000000000
fp_div_down 1000000000000000000 1000000000000000000 = 1000000000000000000
fp_div_up 1000000000000000000 1000000000000000000 = 1000000000000000000
fp_add 1000000000000000000 0 = 1000000000000000000
fp_sub 1000000000000000000 0 = 1000000000000000000
fp_mul_down 1000000000000000000 0 = 0
fp_mul_up 1000000000000000000 0 = 0
fp_div_down 1000000000000000000 0 = ERROR:ZERO_DIVISION
fp_div_up 1000000000000000000 0 = ERROR:ZERO_DIVISION
fp_add 0 1000000000000000000 = 1000000000000000000
fp_sub 0 1000000000000000000 = ERROR:SUB_OVERFLOW
fp_mul_down 0 1000000000000000000 = 0
fp_mul_up 0 1000000000000000000 = 0
fp_div_down 0 1000000000000000000 = 0
fp_div_up 0 1000000000000000000 = 0
fp_add 1 1000000000000000000 = 1000000000000000001
fp_sub 1 1000000000000000000 = ERROR:SUB_OVERFLOW
fp_mul_down 1 1000000000000000000 = 1
fp_mul_up 1 1000000000000000000 = 1
fp_div_down 1 1000000000000000000 = 1
fp_div_up 1 1000000000000000000 = 1
fp_add 1000000000000000000 1000000000000000000000000 = 1000001000000000000000000
fp_sub 1000000000000000000 1000000000000000000000000 = ERROR:SUB_OVERFLOW
fp_mul_down 1000000000000000000 1000000000000000000000000 = 1000000000000000000000000
fp_mul_up 1000000000000000000 1000000000000000000000000 = 1000000000000000000000000
fp_div_down 1000000000000000000 1000000000000000000000000 = 1000000000000
fp_div_up 1000000000000000000 1000000000000000000000000 = 1000000000000
fp_add 1000000 1000000000000000000 = 1000000000001000000
fp_sub 1000000 1000000000000000000 = ERROR:SUB_OVERFLOW
fp_mul_down 1000000 1000000000000000000 = 1000000
fp_mul_up 1000000 1000000000000000000 = 1000000
fp_div_down 1000000 1000000000000000000 = 1000000
fp_div_up 1000000 1000000000000000000 = 1000000
fp_add 340282366920938463463374607431768211456 340282366920938463463374607431768211456 = 680564733841876926926749214863536422912
fp_sub 340282366920938463463374607431768211456 340282366920938463463374607431768211456 = 0
fp_mul_down 340282366920938463463374607431768211456 340282366920938463463374607431768211456 = 115792089237316195423570985008687907853269984665640564039457
fp_mul_up 340282366920938463463374607431768211456 340282366920938463463374607431768211456 = ERROR:MUL_OVERFLOW
fp_div_down 340282366920938463463374607431768211456 340282366920938463463374607431768211456 = 1000000000000000000
fp_div_up 340282366920938463463374607431768211456 340282366920938463463374607431768211456 = 1000000000000000000
fp_add 1000000000000000000000000000000000000 1000000000000000000 = 1000000000000000001000000000000000000
fp_sub 1000000000000000000000000000000000000 1000000000000000000 = 999999999999999999000000000000000000
fp_mul_down 1000000000000000000000000000000000000 1000000000000000000 = 1000000000000000000000000000000000000
fp_mul_up 1000000000000000000000000000000000000 1000000000000000000 = 1000000000000000000000000000000000000
fp_div_down 1000000000000000000000000000000000000 1000000000000000000 = 1000000000000000000000000000000000000
fp_div_up 1000000000000000000000000000000000000 1000000000000000000 = 1000000000000000000000000000000000000
fp_complement 0 = 1000000000000000000
fp_complement 1 = 999999999999999999
fp_complement 500000000000000000 = 500000000000000000
fp_complement 1000000000000000000 = 0
fp_complement 1000000000000000001 = 0
fp_complement 2000000000000000000 = 0
fp_complement 3000000000000000000 = 0
fp_complement 4000000000000000000 = 0
fp_complement 5000000000000000000 = 0
fp_pow_down 0 0 V1 = 999999999999989999
fp_pow_down 0 0 V2 = 999999999999989999
fp_pow_up 0 0 V1 = 1000000000000010001
fp_pow_up 0 0 V2 = 1000000000000010001
fp_pow_down 1000000000000000000 1000000000000000000 V1 = 999999999999989999
fp_pow_down 1000000000000000000 1000000000000000000 V2 = 1000000000000000000
fp_pow_up 1000000000000000000 1000000000000000000 V1 = 1000000000000010001
fp_pow_up 1000000000000000000 1000000000000000000 V2 = 1000000000000000000
fp_pow_down 500000000000000000 1000000000000000000 V1 = 499999999999994999
fp_pow_down 500000000000000000 1000000000000000000 V2 = 500000000000000000
fp_pow_up 500000000000000000 1000000000000000000 V1 = 500000000000005001
fp_pow_up 500000000000000000 1000000000000000000 V2 = 500000000000000000
fp_pow_down 500000000000000000 2000000000000000000 V1 = 249999999999997499
fp_pow_down 500000000000000000 2000000000000000000 V2 = 250000000000000000
fp_pow_up 500000000000000000 2000000000000000000 V1 = 250000000000002501
fp_pow_up 500000000000000000 2000000000000000000 V2 = 250000000000000000
fp_pow_down 500000000000000000 4000000000000000000 V1 = 62499999999999374
fp_pow_down 500000000000000000 4000000000000000000 V2 = 62500000000000000
fp_pow_up 500000000000000000 4000000000000000000 V1 = 62500000000000626
fp_pow_up 500000000000000000 4000000000000000000 V2 = 62500000000000000
fp_pow_down 1000000000000000000 333333333333333333 V1 = 999999999999989999
fp_pow_down 1000000000000000000 333333333333333333 V2 = 999999999999989999
fp_pow_up 1000000000000000000 333333333333333333 V1 = 1000000000000010001
fp_pow_up 1000000000000000000 333333333333333333 V2 = 1000000000000010001
fp_pow_down 1000000000000000000 3000000000000000000 V1 = 999999999999989999
fp_pow_down 1000000000000000000 3000000000000000000 V2 = 999999999999989999
fp_pow_up 1000000000000000000 3000000000000000000 V1 = 1000000000000010001
fp_pow_up 1000000000000000000 3000000000000000000 V2 = 1000000000000010001
fp_pow_down 2000000000000000000 3000000000000000000 V1 = 7999999999999919988
fp_pow_down 2000000000000000000 3000000000000000000 V2 = 7999999999999919988
fp_pow_up 2000000000000000000 3000000000000000000 V1 = 8000000000000079990
fp_pow_up 2000000000000000000 3000000000000000000 V2 = 8000000000000079990
fp_pow_down 500000000000000000 500000000000000000 V1 = 707106781186540452
fp_pow_down 500000000000000000 500000000000000000 V2 = 707106781186540452
fp_pow_up 500000000000000000 500000000000000000 V1 = 707106781186554598
fp_pow_up 500000000000000000 500000000000000000 V2 = 707106781186554598
fp_pow_down 3000000000000000000 500000000000000000 V1 = 1732050807568859970
fp_pow_down 3000000000000000000 500000000000000000 V2 = 1732050807568859970
fp_pow_up 3000000000000000000 500000000000000000 V1 = 1732050807568894614
fp_pow_up 3000000000000000000 500000000000000000 V2 = 1732050807568894614
fp_pow_down 2500000000000000000 1000000000000000000 V1 = 2499999999999974998
fp_pow_down 2500000000000000000 1000000000000000000 V2 = 2500000000000000000
fp_pow_up 2500000000000000000 1000000000000000000 V1 = 2500000000000025000
fp_pow_up 2500000000000000000 1000000000000000000 V2 = 2500000000000000000
fp_pow_down 2500000000000000000 2000000000000000000 V1 = 6249999999999937496
fp_pow_down 2500000000000000000 2000000000000000000 V2 = 6250000000000000000
fp_pow_up 2500000000000000000 2000000000000000000 V1 = 6250000000000062498
fp_pow_up 2500000000000000000 2000000000000000000 V2 = 6250000000000000000
fp_pow_down 2500000000000000000 4000000000000000000 V1 = 39062499999999609343
fp_pow_down 2500000000000000000 4000000000000000000 V2 = 39062500000000000000
fp_pow_up 2500000000000000000 4000000000000000000 V1 = 39062500000000390595
fp_pow_up 2500000000000000000 4000000000000000000 V2 = 39062500000000000000
fp_pow_down 10000000000000000000 250000000000000000 V1 = 1778279410038905015
fp_pow_down 10000000000000000000 250000000000000000 V2 = 1778279410038905015
fp_pow_up 10000000000000000000 250000000000000000 V1 = 1778279410038940583
fp_pow_up 10000000000000000000 250000000000000000 V2 = 1778279410038940583
fp_pow_down 10000000000000000000 200000000000000000 V1 = 1584893192461097633
fp_pow_down 10000000000000000000 200000000000000000 V2 = 1584893192461097633
fp_pow_up 10000000000000000000 200000000000000000 V1 = 1584893192461129333
fp_pow_up 10000000000000000000 200000000000000000 V2 = 1584893192461129333
fp_pow_down 1000000000000000001 1000000000000000000 V1 = 999999999999989999
fp_pow_down 1000000000000000001 1000000000000000000 V2 = 1000000000000000001
fp_pow_up 1000000000000000001 1000000000000000000 V1 = 1000000000000010001
fp_pow_up 1000000000000000001 1000000000000000000 V2 = 1000000000000000001
fp_pow_down 1000000000000000001 2000000000000000000 V1 = 999999999999989999
fp_pow_down 1000000000000000001 2000000000000000000 V2 = 1000000000000000002
fp_pow_up 1000000000000000001 2000000000000000000 V1 = 1000000000000010003
fp_pow_up 1000000000000000001 2000000000000000000 V2 = 1000000000000000003
fp_pow_down 1000000000000000001 4000000000000000000 V1 = 999999999999990001
fp_pow_down 1000000000000000001 4000000000000000000 V2 = 1000000000000000004
fp_pow_up 1000000000000000001 4000000000000000000 V1 = 1000000000000010005
fp_pow_up 1000000000000000001 4000000000000000000 V2 = 1000000000000000007
fp_pow_down 123000000000000000 5000000000000000000 V1 = 28153056842998
fp_pow_down 123000000000000000 5000000000000000000 V2 = 28153056842998
fp_pow_up 123000000000000000 5000000000000000000 V1 = 28153056843002
fp_pow_up 123000000000000000 5000000000000000000 V2 = 28153056843002
fp_pow_down 100000000000000000 1000000000000000000 V1 = 99999999999998999
fp_pow_down 100000000000000000 1000000000000000000 V2 = 100000000000000000
fp_pow_up 100000000000000000 1000000000000000000 V1 = 100000000000001001
fp_pow_up 100000000000000000 1000000000000000000 V2 = 100000000000000000
fp_pow_down 100000000000000000 0 V1 = 999999999999989999
fp_pow_down 100000000000000000 0 V2 = 999999999999989999
fp_pow_up 100000000000000000 0 V1 = 1000000000000010001
fp_pow_up 100000000000000000 0 V2 = 1000000000000010001
fp_pow_down 1606938044258990275541962092341162602522202993782792835301376 1000000000000000000 V1 = 1606938044258974205833702434682936866402723414211898592007287
fp_pow_down 1606938044258990275541962092341162602522202993782792835301376 1000000000000000000 V2 = 1606938044258990275541962092341162602522202993782792835301376
fp_pow_up 1606938044258990275541962092341162602522202993782792835301376 1000000000000000000 V1 = 1606938044259006344594587614488441149303215127992055651392713
fp_pow_up 1606938044258990275541962092341162602522202993782792835301376 1000000000000000000 V2 = 1606938044258990275541962092341162602522202993782792835301376
lm_pow 2000000000000000000 1000000000000000000 = 1999999999999999998
lm_pow 2000000000000000000 500000000000000000 = 1414213562373095047
lm_pow 2000000000000000000 3000000000000000000 = 7999999999999999989
lm_pow 500000000000000000 1000000000000000000 = 500000000000000000
lm_pow 10000000000000000000 500000000000000000 = 3162277660168379328
lm_pow 10000000000000000000 1000000000000000000 = 9999999999999999989
lm_pow 10000000000000000000 -500000000000000000 = 316227766016837933
lm_pow 10000000000000000001 1000000000000000000 = 9999999999999999999
lm_pow 123000000000000000 5000000000000000000 = 28153056843000
lm_pow 100000000000000000000 500000000000000000 = 9999999999999999989
lm_pow 1000000000000000000 0 = 1000000000000000000
lm_pow 0 5 = 0
lm_pow 5 0 = 1000000000000000000
lm_ln 1000000000000000000 = 0
lm_exp 1000000000000000000 = 2718281828459045235
lm_ln 2000000000000000000 = 693147180559945309
lm_exp 2000000000000000000 = 7389056098930650227
lm_ln 500000000000000000 = -693147180559945309
lm_exp 500000000000000000 = 1648721270700128146
lm_ln 10000000000000000000 = 2302585092994045683
lm_exp 10000000000000000000 = 22026465794806716516930
lm_ln 123000000000000000 = -2095570923609719556
lm_exp 123000000000000000 = 1130884420947489323
lm_ln 100000000000000000000 = 4605170185988091367
lm_exp 100000000000000000000 = 26881171418161354484131967259153438289195652545281114830700000
lm_ln 100000000000000000 = -2302585092994045683
lm_exp 100000000000000000 = 1105170918075647624
lm_ln 1000000000000000001 = 0
lm_exp 1000000000000000001 = 2718281828459045238
lm_ln 999999999999999999 = -1
lm_exp 999999999999999999 = 2718281828459045227
lm_ln 1100000000000000000 = 95310179804324859
lm_exp 1100000000000000000 = 3004166023946433111
lm_ln 900000000000000000 = -105360515657826301
lm_exp 900000000000000000 = 2459603111156949663
lm_log 8000000000000000000 2000000000000000000 = 3000000000000000001
lm_log 100000000000000000000 10000000000000000000 = 2000000000000000000
lm_log 500000000000000000 2000000000000000000 = -1000000000000000000
lm_log 1000000000000000000 10000000000000000000 = 0
wm_invariant [1000000000000000000,1000000000000000000] [1000000000000000000,1000000000000000000] V1 = 999999999999979998
wm_invariant [1000000000000000000,1000000000000000000] [1000000000000000000,1000000000000000000] V2 = 1000000000000000000
wm_invariant [500000000000000000,500000000000000000] [2000000000000000000,3000000000000000000] V1 = 2449489742783129097
wm_invariant [500000000000000000,500000000000000000] [2000000000000000000,3000000000000000000] V2 = 2449489742783129097
wm_invariant [2000000000000000000,1000000000000000000] [1000000000000000000,2000000000000000000] V1 = 1999999999999959995
wm_invariant [2000000000000000000,1000000000000000000] [1000000000000000000,2000000000000000000] V2 = 2000000000000000000
wm_invariant [333333333333333333,333333333333333333,333333333333333333] [10000000000000000000,20000000000000000000,30000000000000000000] V1 = 18171205928320851280
wm_invariant [333333333333333333,333333333333333333,333333333333333333] [10000000000000000000,20000000000000000000,30000000000000000000] V2 = 18171205928320851280
wm_invariant [500000000000000000,333333333333333333,166666666666666666] [5000000000000000000,3000000000000000000,2000000000000000000] V1 = 3619904276502860319
wm_invariant [500000000000000000,333333333333333333,166666666666666666] [5000000000000000000,3000000000000000000,2000000000000000000] V2 = 3619904276502860319
wm_invariant [250000000000000001,749999999999999999] [100000000000000000000,100000000000000000000] V1 = 99999999999997999713
wm_invariant [250000000000000001,749999999999999999] [100000000000000000000,100000000000000000000] V2 = 99999999999997999713
wm_out_given_in 1000000000000000000000000 1000000000000000000 1000000000000000000000000 1000000000000000000 100000000000000000000 V1 = 99990000989899000000
wm_out_given_in 1000000000000000000000000 1000000000000000000 1000000000000000000000000 1000000000000000000 100000000000000000000 V2 = 99990000999900000000
wm_out_given_in 1000000000000000000000000 1000000000000000000 500000000000000000000000 1000000000000000000 100000000000000000000 V1 = 49995000494949500000
wm_out_given_in 1000000000000000000000000 1000000000000000000 500000000000000000000000 1000000000000000000 100000000000000000000 V2 = 49995000499950000000
wm_out_given_in 500000000000000000000000 1000000000000000000 1000000000000000000000000 1000000000000000000 50000000000000000000 V1 = 99990000989899000000
wm_out_given_in 500000000000000000000000 1000000000000000000 1000000000000000000000000 1000000000000000000 50000000000000000000 V2 = 99990000999900000000
wm_out_given_in 1000000000000000000000000 500000000000000000 1000000000000000000000000 500000000000000000 1000000000000000000000 V1 = 999000998991007000000
wm_out_given_in 1000000000000000000000000 500000000000000000 1000000000000000000000000 500000000000000000 1000000000000000000000 V2 = 999000999000999000000
wm_out_given_in 1000000000000000000000000 1000000000000000000 1000000000000000000000000 1000000000000000000 1 V1 = 0
wm_out_given_in 1000000000000000000000000 1000000000000000000 1000000000000000000000000 1000000000000000000 1 V2 = 0
wm_out_given_in 1000000000000000000000000 2000000000000000000 500000000000000000000000 1000000000000000000 10000000000000000000 V1 = 9999849996998000000
wm_out_given_in 1000000000000000000000000 2000000000000000000 500000000000000000000000 1000000000000000000 10000000000000000000 V2 = 9999850001998500000
wm_in_given_out 1000000000000000000000000 1000000000000000000 1000000000000000000000000 1000000000000000000 100000000000000000000 V1 = 100010001010103000000
wm_in_given_out 1000000000000000000000000 1000000000000000000 1000000000000000000000000 1000000000000000000 100000000000000000000 V2 = 100010001000101000000
wm_in_given_out 1000000000000000000000000 1000000000000000000 500000000000000000000000 1000000000000000000 50000000000000000000 V1 = 100010001010103000000
wm_in_given_out 1000000000000000000000000 1000000000000000000 500000000000000000000000 1000000000000000000 50000000000000000000 V2 = 100010001000101000000
wm_in_given_out 500000000000000000000000 1000000000000000000 1000000000000000000000000 1000000000000000000 100000000000000000000 V1 = 50005000505051500000
wm_in_given_out 500000000000000000000000 1000000000000000000 1000000000000000000000000 1000000000000000000 100000000000000000000 V2 = 50005000500050500000
wm_in_given_out 1000000000000000000000000 1000000000000000000 1000000000000000000000000 1000000000000000000 1 V1 = 10001000000
wm_in_given_out 1000000000000000000000000 1000000000000000000 1000000000000000000000000 1000000000000000000 1 V2 = 1000000
wm_in_given_out 1000000000000000000000000 2000000000000000000 500000000000000000000000 1000000000000000000 10000000000000000000 V1 = 10000150012501000000
wm_in_given_out 1000000000000000000000000 2000000000000000000 500000000000000000000000 1000000000000000000 10000000000000000000 V2 = 10000150012501000000
wm_in_given_out 1000000000000000000000000 1000000000000000000 1000000000000000000000000 1000000000000000000 99999999999999999999 V1 = 100010001010103000000
wm_in_given_out 1000000000000000000000000 1000000000000000000 1000000000000000000000000 1000000000000000000 99999999999999999999 V2 = 100010001000101000000
wm_sub_fee 0 10000000000000000 = 0
wm_add_fee 0 10000000000000000 = 0
wm_sub_fee 1 10000000000000000 = 0
wm_add_fee 1 10000000000000000 = 2
wm_sub_fee 1000000000000000000 10000000000000000 = 990000000000000000
wm_add_fee 1000000000000000000 10000000000000000 = 1010101010101010102
wm_sub_fee 100000000000000000000 10000000000000000 = 99000000000000000000
wm_add_fee 100000000000000000000 10000000000000000 = 101010101010101010102
wm_sub_fee 1000000000000000000000000 10000000000000000 = 990000000000000000000000
wm_add_fee 1000000000000000000000000 10000000000000000 = 1010101010101010101010102
wm_sub_fee 500000000000000000 10000000000000000 = 495000000000000000
wm_add_fee 500000000000000000 10000000000000000 = 505050505050505051
sm_invariant_d_p 200000 [1000000000000000000000000,1000000000000000000000000] = 2000000000000000000000000
sm_invariant_p_d_up 200000 [1000000000000000000000000,1000000000000000000000000] = 2000000000000000000000000
sm_invariant_p_d_down 200000 [1000000000000000000000000,1000000000000000000000000] = 2000000000000000000000000
sm_invariant_d_p 200000 [1000000000000000000000000,1200000000000000000000000] = 2199954397522062696802503
sm_invariant_p_d_up 200000 [1000000000000000000000000,1200000000000000000000000] = 2199954397522062696802504
sm_invariant_p_d_down 200000 [1000000000000000000000000,1200000000000000000000000] = 2199954397522062696802503
sm_invariant_d_p 100000 [100000000000000000000,200000000000000000000,300000000000000000000] = 599342806940310079562
sm_invariant_p_d_up 100000 [100000000000000000000,200000000000000000000,300000000000000000000] = 599342806940310079563
sm_invariant_p_d_down 100000 [100000000000000000000,200000000000000000000,300000000000000000000] = 599342806940310079562
sm_invariant_d_p 50000 [5000000000000000000,5000000000000000000,5000000000000000000,5000000000000000000] = 20000000000000000000
sm_invariant_p_d_up 50000 [5000000000000000000,5000000000000000000,5000000000000000000,5000000000000000000] = 20000000000000000000
sm_invariant_p_d_down 50000 [5000000000000000000,5000000000000000000,5000000000000000000,5000000000000000000] = 20000000000000000000
sm_invariant_d_p 1000000 [1000000000000000000,2000000000000000000] = 2999812722372454608
sm_invariant_p_d_up 1000000 [1000000000000000000,2000000000000000000] = 2999812722372454609
sm_invariant_p_d_down 1000000 [1000000000000000000,2000000000000000000] = 2999812722372454608
sm_invariant_d_p 200000 [1000000000000000000,2000000000000000000,3000000000000000000] = 5996690543963657169
sm_invariant_p_d_up 200000 [1000000000000000000,2000000000000000000,3000000000000000000] = 5996690543963657170
sm_invariant_p_d_down 200000 [1000000000000000000,2000000000000000000,3000000000000000000] = 5996690543963657169
sm_out_given_in 200000 [1000000000000000000000000,1000000000000000000000000] 0 1 100000000000000000000 2000000000000000000000000 = 99999950248780478131
sm_out_given_in 200000 [1000000000000000000000000,1200000000000000000000000] 0 1 50000000000000000000 2199954397522062696802504 = 50045987937515189049
sm_out_given_in 100000 [100000000000000000000,200000000000000000000,300000000000000000000] 0 1 5000000000000000000 599342806940310079563 = 5060784801098529824
sm_out_given_in 100000 [100000000000000000000,200000000000000000000,300000000000000000000] 2 0 5000000000000000000 599342806940310079563 = 4908717256222257246
sm_out_given_in 200000 [1000000000000000000000000,2000000000000000000000000,3000000000000000000000000] 0 2 100000000000000000000 5996690543963657169377973 = 100882910619134269084
sm_in_given_out 200000 [1000000000000000000000000,1000000000000000000000000] 0 1 100000000000000000000 2000000000000000000000000 = 100000049751269026491
sm_in_given_out 200000 [1000000000000000000000000,1200000000000000000000000] 0 1 50000000000000000000 2199954397522062696802504 = 49954054310518942642
sm_in_given_out 100000 [100000000000000000000,200000000000000000000,300000000000000000000] 0 1 5000000000000000000 599342806940310079563 = 4939892003122214380
sm_in_given_out 100000 [100000000000000000000,200000000000000000000,300000000000000000000] 2 0 5000000000000000000 599342806940310079563 = 5093082881971134227
sm_in_given_out 200000 [1000000000000000000000000,2000000000000000000000000,3000000000000000000000000] 0 2 100000000000000000000 5996690543963657169377973 = 99124815584583680414
