0 = 0 1 = 1 -1 = -1 42 = 42 1+1 = 2 1-1 = 0 - 1 = -1 0-1 = -1 max_int = 1073741823 min_int = -1073741824 -max_int = -1073741823 -min_int = 1073741824 2^300 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 2^120 = 1329227995784915872903807060280344576 2^300+2^120 = 2037035976334486086268445688409378161051468393665936251965368445139297172667143766463741952 2^300-2^120 = 2037035976334486086268445688409378161051468393665936249306912453569465426859529645903052800 2^300+(-(2^120)) = 2037035976334486086268445688409378161051468393665936249306912453569465426859529645903052800 2^120-2^300 = -2037035976334486086268445688409378161051468393665936249306912453569465426859529645903052800 2^120+(-(2^300)) = -2037035976334486086268445688409378161051468393665936249306912453569465426859529645903052800 -(2^120)+(-(2^300)) = -2037035976334486086268445688409378161051468393665936251965368445139297172667143766463741952 -(2^120)-2^300 = -2037035976334486086268445688409378161051468393665936251965368445139297172667143766463741952 2^300-2^300 = 0 2^121 = 2658455991569831745807614120560689152 2^121+2^120 = 3987683987354747618711421180841033728 2^121-2^120 = 1329227995784915872903807060280344576 2^121+(-(2^120)) = 1329227995784915872903807060280344576 2^120-2^121 = -1329227995784915872903807060280344576 2^120+(-(2^121)) = -1329227995784915872903807060280344576 -(2^120)+(-(2^121)) = -3987683987354747618711421180841033728 -(2^120)-2^121 = -3987683987354747618711421180841033728 2^121+0 = 2658455991569831745807614120560689152 2^121-0 = 2658455991569831745807614120560689152 0+2^121 = 2658455991569831745807614120560689152 0-2^121 = -2658455991569831745807614120560689152 2^300+1 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397377 2^300-1 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397375 1+2^300 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397377 1-2^300 = -2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397375 2^300+(-1) = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397375 2^300-(-1) = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397377 (-1)+2^300 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397375 (-1)-2^300 = -2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397377 -(2^300)+1 = -2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397375 -(2^300)-1 = -2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397377 1+(-(2^300)) = -2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397375 1-(-(2^300)) = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397377 -(2^300)+(-1) = -2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397377 -(2^300)-(-1) = -2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397375 (-1)+(-(2^300)) = -2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397377 (-1)-(-(2^300)) = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397375 max_int+1 = 1073741824 min_int-1 = -1073741825 -max_int-1 = -1073741824 -min_int-1 = 1073741823 5! = 120 12! = 479001600 15! = 1307674368000 20! = 2432902008176640000 25! = 15511210043330985984000000 50! = 30414093201713378043612608166064768844377641568960512000000000000 2^300*2^120 = 2707685248164858261307045101702230179137145581421695874189921465443966120903931272499975005961073806735733604454495675614232576 2^120*2^300 = 2707685248164858261307045101702230179137145581421695874189921465443966120903931272499975005961073806735733604454495675614232576 2^300*(-(2^120)) = -2707685248164858261307045101702230179137145581421695874189921465443966120903931272499975005961073806735733604454495675614232576 2^120*(-(2^300)) = -2707685248164858261307045101702230179137145581421695874189921465443966120903931272499975005961073806735733604454495675614232576 -(2^120)*(-(2^300)) = 2707685248164858261307045101702230179137145581421695874189921465443966120903931272499975005961073806735733604454495675614232576 2^121*2^120 = 3533694129556768659166595001485837031654967793751237916243212402585239552 2^120*2^121 = 3533694129556768659166595001485837031654967793751237916243212402585239552 2^121*0 = 0 0*2^121 = 0 2^300*1 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 1*2^300 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 2^300*(-1) = -2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 (-1)*2^300 = -2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 -(2^300)*1 = -2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 1*(-(2^300)) = -2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 -(2^300)*(-1) = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 (-1)*(-(2^300)) = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 1*(2^30) = 1073741824 1*(2^62) = 4611686018427387904 (2^30)*(2^30) = 1152921504606846976 (2^62)*(2^62) = 21267647932558653966460912964485513216 0+1 = 1 1+1 = 2 -1+1 = 0 2+1 = 3 -2+1 = -1 (2^300)+1 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397377 -(2^300)+1 = -2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397375 0-1 = -1 1-1 = 0 -1-1 = -2 2-1 = 1 -2-1 = -3 (2^300)-1 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397375 -(2^300)-1 = -2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397377 max_int+1 = 1073741824 min_int-1 = -1073741825 -max_int-1 = -1073741824 -min_int-1 = 1073741823 abs(0) = 0 abs(1) = 1 abs(-1) = 1 abs(min_int) = 1073741824 abs(2^300) = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 abs(-(2^300)) = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 max_nativeint = 2147483647 max_int32 = 2147483647 max_int64 = 9223372036854775807 to_int 1 = true,1 to_int max_int = true,1073741823 to_int max_nativeint = false,ovf to_int max_int32 = false,ovf to_int max_int64 = false,ovf to_int32 1 = true,1 to_int32 max_int = true,1073741823 to_int32 max_nativeint = true,2147483647 to_int32 max_int32 = true,2147483647 to_int32 max_int64 = false,ovf to_int64 1 = true,1 to_int64 max_int = true,1073741823 to_int64 max_nativeint = true,2147483647 to_int64 max_int32 = true,2147483647 to_int64 max_int64 = true,9223372036854775807 to_nativeint 1 = true,1 to_nativeint max_int = true,1073741823 to_nativeint max_nativeint = true,2147483647 to_nativeint max_int32 = true,2147483647 to_nativeint max_int64 = false,ovf to_int -min_int = false,ovf to_int -min_nativeint = false,ovf to_int -min_int32 = false,ovf to_int -min_int64 = false,ovf to_int32 -min_int = true,1073741824 to_int32 -min_nativeint = false,ovf to_int32 -min_int32 = false,ovf to_int32 -min_int64 = false,ovf to_int64 -min_int = true,1073741824 to_int64 -min_nativeint = true,2147483648 to_int64 -min_int32 = true,2147483648 to_int64 -min_int64 = false,ovf to_nativeint -min_int = true,1073741824 to_nativeint -min_nativeint = false,ovf to_nativeint -min_int32 = false,ovf to_nativeint -min_int64 = false,ovf to_int32_unsigned 1 = true,1 to_int32_unsigned -1 = false,ovf to_int32_unsigned max_int = true,1073741823 to_int32_unsigned max_nativeint = true,2147483647 to_int32_unsigned max_int32 = true,2147483647 to_int32_unsigned 2max_int32 = true,-2 to_int32_unsigned 3max_int32 = false,ovf to_int32_unsigned max_int64 = false,ovf to_int64_unsigned 1 = true,1 to_int64_unsigned -1 = false,ovf to_int64_unsigned max_int = true,1073741823 to_int64_unsigned max_nativeint = true,2147483647 to_int64_unsigned max_int32 = true,2147483647 to_int64_unsigned max_int64 = true,9223372036854775807 to_int64_unsigned 2max_int64 = true,-2 to_int64_unsigned 3max_int64 = false,ovf to_nativeint_unsigned 1 = true,1 to_nativeint_unsigned -1 = false,ovf to_nativeint_unsigned max_int = true,1073741823 to_nativeint_unsigned max_nativeint = true,2147483647 to_nativeint_unsigned 2max_nativeint = true,-2 to_nativeint_unsigned max_int32 = true,2147483647 to_nativeint_unsigned max_int64 = false,ovf to_nativeint_unsigned 2max_int64 = false,ovf to_nativeint_unsigned 3max_int64 = false,ovf of_int32_unsigned -1 = 4294967295 of_int64_unsigned -1 = 18446744073709551615 of_nativeint_unsigned -1 = 4294967295 of_float 1. = 1 of_float -1. = -1 of_float pi = 3 of_float 2^30 = 1073741824 of_float 2^31 = 2147483648 of_float 2^32 = 4294967296 of_float 2^33 = 8589934592 of_float -2^30 = -1073741824 of_float -2^31 = -2147483648 of_float -2^32 = -4294967296 of_float -2^33 = -8589934592 of_float 2^61 = 2305843009213693952 of_float 2^62 = 4611686018427387904 of_float 2^63 = 9223372036854775808 of_float 2^64 = 18446744073709551616 of_float 2^65 = 36893488147419103232 of_float -2^61 = -2305843009213693952 of_float -2^62 = -4611686018427387904 of_float -2^63 = -9223372036854775808 of_float -2^64 = -18446744073709551616 of_float -2^65 = -36893488147419103232 of_float 2^120 = 1329227995784915872903807060280344576 of_float 2^300 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 of_float -2^120 = -1329227995784915872903807060280344576 of_float -2^300 = -2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 of_float 0.5 = 0 of_float -0.5 = 0 of_float 200.5 = 200 of_float -200.5 = -200 to_float 0 = OK to_float 1 = OK to_float -1 = OK to_float 2^120 = OK to_float -2^120 = OK to_float (2^120-1) = OK to_float (-2^120+1) = OK to_float 2^63 = OK to_float -2^63 = OK to_float (2^63-1) = OK to_float (-2^63-1) = OK to_float (-2^63+1) = OK to_float 2^300 = OK to_float -2^300 = OK to_float (2^300-1) = OK to_float (-2^300+1) = OK of_string 12 = 12 of_string 0x12 = 18 of_string 0b10 = 2 of_string 0o12 = 10 of_string -12 = -12 of_string -0x12 = -18 of_string -0b10 = -2 of_string -0o12 = -10 of_string 000123456789012345678901234567890 = 123456789012345678901234567890 2^120 / 2^300 (trunc) = 0 max_int / 2 (trunc) = 536870911 (2^300+1) / 2^120 (trunc) = 1532495540865888858358347027150309183618739122183602176 (-(2^300+1)) / 2^120 (trunc) = -1532495540865888858358347027150309183618739122183602176 (2^300+1) / (-(2^120)) (trunc) = -1532495540865888858358347027150309183618739122183602176 (-(2^300+1)) / (-(2^120)) (trunc) = 1532495540865888858358347027150309183618739122183602176 2^120 / 2^300 (ceil) = 1 max_int / 2 (ceil) = 536870912 (2^300+1) / 2^120 (ceil) = 1532495540865888858358347027150309183618739122183602177 (-(2^300+1)) / 2^120 (ceil) = -1532495540865888858358347027150309183618739122183602176 (2^300+1) / (-(2^120)) (ceil) = -1532495540865888858358347027150309183618739122183602176 (-(2^300+1)) / (-(2^120)) (ceil) = 1532495540865888858358347027150309183618739122183602177 2^120 / 2^300 (floor) = 0 max_int / 2 (floor) = 536870911 (2^300+1) / 2^120 (floor) = 1532495540865888858358347027150309183618739122183602176 (-(2^300+1)) / 2^120 (floor) = -1532495540865888858358347027150309183618739122183602177 (2^300+1) / (-(2^120)) (floor) = -1532495540865888858358347027150309183618739122183602177 (-(2^300+1)) / (-(2^120)) (floor) = 1532495540865888858358347027150309183618739122183602176 2^120 % 2^300 = 1329227995784915872903807060280344576 max_int % 2 = 1 (2^300+1) % 2^120 = 1 (-(2^300+1)) % 2^120 = -1 (2^300+1) % (-(2^120)) = 1 (-(2^300+1)) % (-(2^120)) = -1 2^120 /,% 2^300 = 0, 1329227995784915872903807060280344576 max_int /,% 2 = 536870911, 1 (2^300+1) /,% 2^120 = 1532495540865888858358347027150309183618739122183602176, 1 (-(2^300+1)) /,% 2^120 = -1532495540865888858358347027150309183618739122183602176, -1 (2^300+1) /,% (-(2^120)) = -1532495540865888858358347027150309183618739122183602176, 1 (-(2^300+1)) /,% (-(2^120)) = 1532495540865888858358347027150309183618739122183602176, -1 1 & 2 = 0 1 & 2^300 = 0 2^120 & 2^300 = 0 2^300 & 2^120 = 0 2^300 & 2^300 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 2^300 & 0 = 0 -2^120 & 2^300 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 2^120 & -2^300 = 0 -2^120 & -2^300 = -2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 -2^300 & 2^120 = 0 2^300 & -2^120 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 -2^300 & -2^120 = -2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 1 | 2 = 3 1 | 2^300 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397377 2^120 | 2^300 = 2037035976334486086268445688409378161051468393665936251965368445139297172667143766463741952 2^300 | 2^120 = 2037035976334486086268445688409378161051468393665936251965368445139297172667143766463741952 2^300 | 2^300 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 2^300 | 0 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 -2^120 | 2^300 = -1329227995784915872903807060280344576 2^120 | -2^300 = -2037035976334486086268445688409378161051468393665936249306912453569465426859529645903052800 -2^120 | -2^300 = -1329227995784915872903807060280344576 -2^300 | 2^120 = -2037035976334486086268445688409378161051468393665936249306912453569465426859529645903052800 2^300 | -2^120 = -1329227995784915872903807060280344576 -2^300 | -2^120 = -1329227995784915872903807060280344576 1 ^ 2 = 3 1 ^ 2^300 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397377 2^120 ^ 2^300 = 2037035976334486086268445688409378161051468393665936251965368445139297172667143766463741952 2^300 ^ 2^120 = 2037035976334486086268445688409378161051468393665936251965368445139297172667143766463741952 2^300 ^ 2^300 = 0 2^300 ^ 0 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 -2^120 ^ 2^300 = -2037035976334486086268445688409378161051468393665936251965368445139297172667143766463741952 2^120 ^ -2^300 = -2037035976334486086268445688409378161051468393665936249306912453569465426859529645903052800 -2^120 ^ -2^300 = 2037035976334486086268445688409378161051468393665936249306912453569465426859529645903052800 -2^300 ^ 2^120 = -2037035976334486086268445688409378161051468393665936249306912453569465426859529645903052800 2^300 ^ -2^120 = -2037035976334486086268445688409378161051468393665936251965368445139297172667143766463741952 -2^300 ^ -2^120 = 2037035976334486086268445688409378161051468393665936249306912453569465426859529645903052800 ~0 = -1 ~1 = -2 ~2 = -3 ~2^300 = -2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397377 ~(-1) = 0 ~(-2) = 1 ~(-(2^300)) = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397375 0 >> 1 = 0 0 >> 100 = 0 2 >> 1 = 1 2 >> 2 = 0 2 >> 100 = 0 2^300 >> 1 = 1018517988167243043134222844204689080525734196832968125318070224677190649881668353091698688 2^300 >> 2 = 509258994083621521567111422102344540262867098416484062659035112338595324940834176545849344 2^300 >> 100 = 1606938044258990275541962092341162602522202993782792835301376 2^300 >> 200 = 1267650600228229401496703205376 2^300 >> 300 = 1 2^300 >> 400 = 0 -1 >> 1 = -1 -2 >> 1 = -1 -2 >> 2 = -1 -2 >> 100 = -1 -2^300 >> 1 = -1018517988167243043134222844204689080525734196832968125318070224677190649881668353091698688 -2^300 >> 2 = -509258994083621521567111422102344540262867098416484062659035112338595324940834176545849344 -2^300 >> 100 = -1606938044258990275541962092341162602522202993782792835301376 -2^300 >> 200 = -1267650600228229401496703205376 -2^300 >> 300 = -1 -2^300 >> 400 = -1 0 >>0 1 = 0 0 >>0 100 = 0 2 >>0 1 = 1 2 >>0 2 = 0 2 >>0 100 = 0 2^300 >>0 1 = 1018517988167243043134222844204689080525734196832968125318070224677190649881668353091698688 2^300 >>0 2 = 509258994083621521567111422102344540262867098416484062659035112338595324940834176545849344 2^300 >>0 100 = 1606938044258990275541962092341162602522202993782792835301376 2^300 >>0 200 = 1267650600228229401496703205376 2^300 >>0 300 = 1 2^300 >>0 400 = 0 -1 >>0 1 = 0 -2 >>0 1 = -1 -2 >>0 2 = 0 -2 >>0 100 = 0 -2^300 >>0 1 = -1018517988167243043134222844204689080525734196832968125318070224677190649881668353091698688 -2^300 >>0 2 = -509258994083621521567111422102344540262867098416484062659035112338595324940834176545849344 -2^300 >>0 100 = -1606938044258990275541962092341162602522202993782792835301376 -2^300 >>0 200 = -1267650600228229401496703205376 -2^300 >>0 300 = -1 -2^300 >>0 400 = 0 0 << 1 = 0 0 << 100 = 0 2 << 1 = 4 2 << 32 = 8589934592 2 << 64 = 36893488147419103232 2 << 299 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 2^120 << 1 = 2658455991569831745807614120560689152 2^120 << 180 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 compare 1 2 = -1 compare 1 1 = 0 compare 2 1 = 1 compare 2^300 2^120 = 1 compare 2^120 2^120 = 0 compare 2^120 2^300 = -1 compare 2^121 2^120 = 1 compare 2^120 2^121 = -1 compare 2^300 -2^120 = 1 compare 2^120 -2^120 = 1 compare 2^120 -2^300 = 1 compare -2^300 2^120 = -1 compare -2^120 2^120 = -1 compare -2^120 2^300 = -1 compare -2^300 -2^120 = -1 compare -2^120 -2^120 = 0 compare -2^120 -2^300 = 1 equal 1 2 = false equal 1 1 = true equal 2 1 = false equal 2^300 2^120 = false equal 2^120 2^120 = true equal 2^120 2^300 = false equal 2^121 2^120 = false equal 2^120 2^121 = false equal 2^120 -2^120 = false equal -2^120 2^120 = false equal -2^120 -2^120 = true sign 0 = 0 sign 1 = 1 sign -1 = -1 sign 2^300 = 1 sign -2^300 = -1 gcd 0 0 = 0 gcd 0 -137 = 137 gcd 12 27 = 3 gcd 27 12 = 3 gcd 27 27 = 27 gcd -12 27 = 3 gcd 12 -27 = 3 gcd -12 -27 = 3 gcd 0 2^300 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 gcd 2^120 2^300 = 1329227995784915872903807060280344576 gcd 2^300 2^120 = 1329227995784915872903807060280344576 gcd 0 -2^300 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 gcd 2^120 -2^300 = 1329227995784915872903807060280344576 gcd 2^300 -2^120 = 1329227995784915872903807060280344576 gcd -2^120 2^300 = 1329227995784915872903807060280344576 gcd -2^300 2^120 = 1329227995784915872903807060280344576 gcd -2^120 -2^300 = 1329227995784915872903807060280344576 gcd -2^300 -2^120 = 1329227995784915872903807060280344576 gcdext 12 27 = 3, -2, 1 gcdext 27 12 = 3, 1, -2 gcdext 27 27 = 27, 0, 1 gcdext -12 27 = 3, 2, 1 gcdext 12 -27 = 3, -2, -1 gcdext -12 -27 = 3, 2, -1 gcdext 2^120 2^300 = 1329227995784915872903807060280344576, 1, 0 gcdext 2^300 2^120 = 1329227995784915872903807060280344576, 0, 1 gcdext 12 0 = 12, 1, 0 gcdext 0 27 = 27, 0, 1 gcdext -12 0 = 12, -1, 0 gcdext 0 -27 = 27, 0, -1 gcdext 2^120 0 = 1329227995784915872903807060280344576, 1, 0 gcdext 0 2^300 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376, 0, 1 gcdext -2^120 0 = 1329227995784915872903807060280344576, -1, 0 gcdext 0 -2^300 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376, 0, -1 gcdext 0 0 = 0, 0, 0 lcm 0 0 = 0 lcm 10 12 = 60 lcm -10 12 = 60 lcm 10 -12 = 60 lcm -10 -12 = 60 lcm 0 12 = 0 lcm 0 -12 = 0 lcm 10 0 = 0 lcm -10 0 = 0 lcm 2^120 2^300 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 lcm 2^120 -2^300 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 lcm -2^120 2^300 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 lcm -2^120 -2^300 = 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 lcm 2^120 0 = 0 lcm -2^120 0 = 0 is_odd 0 = false is_odd 1 = true is_odd 2 = false is_odd 3 = true is_odd 2^120 = false is_odd 2^120+1 = true is_odd 2^300 = false is_odd 2^300+1 = true sqrt 0 = 0 sqrt 1 = 1 sqrt 2 = 1 sqrt 2^120 = 1152921504606846976 sqrt 2^121 = 1630477228166597776 sqrt_rem 0 = 0, 0 sqrt_rem 1 = 1, 0 sqrt_rem 2 = 1, 1 sqrt_rem 2^120 = 1152921504606846976, 0 sqrt_rem 2^121 = 1630477228166597776, 1772969445592542976 popcount 0 = 0 popcount 1 = 1 popcount 2 = 1 popcount max_int32 = 31 popcount 2^120 = 1 popcount (2^120-1) = 120 hamdist 0 0 = 0 hamdist 0 1 = 1 hamdist 0 2^300 = 1 hamdist 2^120 2^120 = 0 hamdist 2^120 (2^120-1) = 121 hamdist 2^120 2^300 = 2 hamdist (2^120-1) (2^300-1) = 180 divisible 42 7 = true divisible 43 7 = false divisible 0 0 = true divisible 0 2^120 = true divisible 2 2^120 = false divisible 2^300 2^120 = true divisible (2^300-1) 32 = false divisible min_int (max_int+1) = true divisible (max_int+1) min_int = true hash(2^120) = 691199303 hash(2^121) = 382412560 hash(2^300) = 61759632 2^120 = 2^300 = false 2^120 = 2^120 = true 2^120 = 2^120 = true 2^120 > 2^300 = false 2^120 < 2^300 = true 2^120 = 1 = false 2^120 > 1 = true 2^120 < 1 = false -2^120 > 1 = false -2^120 < 1 = true demarshal 2^120, 2^300, 1 = 1329227995784915872903807060280344576, 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376, 1 demarshal -2^120, -2^300, -1 = -1329227995784915872903807060280344576, -2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376, -1 format %i 0 = /0/ format %i 1 = /1/ format %i -1 = /-1/ format %i 2^30 = /1073741824/ format %i -2^30 = /-1073741824/ format % i 1 = / 1/ format %+i 1 = /+1/ format %x 0 = /0/ format %x 1 = /1/ format %x -1 = /-1/ format %x 2^30 = /40000000/ format %x -2^30 = /-40000000/ format %X 0 = /0/ format %X 1 = /1/ format %X -1 = /-1/ format %X 2^30 = /40000000/ format %X -2^30 = /-40000000/ format %o 0 = /0/ format %o 1 = /1/ format %o -1 = /-1/ format %o 2^30 = /10000000000/ format %o -2^30 = /-10000000000/ format %10i 0 = / 0/ format %10i 1 = / 1/ format %10i -1 = / -1/ format %10i 2^30 = /1073741824/ format %10i -2^30 = /-1073741824/ format %-10i 0 = /0 / format %-10i 1 = /1 / format %-10i -1 = /-1 / format %-10i 2^30 = /1073741824/ format %-10i -2^30 = /-1073741824/ format %+10i 0 = / +0/ format %+10i 1 = / +1/ format %+10i -1 = / -1/ format %+10i 2^30 = /+1073741824/ format %+10i -2^30 = /-1073741824/ format % 10i 0 = / 0/ format % 10i 1 = / 1/ format % 10i -1 = / -1/ format % 10i 2^30 = / 1073741824/ format % 10i -2^30 = /-1073741824/ format %010i 0 = /0000000000/ format %010i 1 = /0000000001/ format %010i -1 = /-000000001/ format %010i 2^30 = /1073741824/ format %010i -2^30 = /-1073741824/ format %#x 0 = /0x0/ format %#x 1 = /0x1/ format %#x -1 = /-0x1/ format %#x 2^30 = /0x40000000/ format %#x -2^30 = /-0x40000000/ format %#X 0 = /0X0/ format %#X 1 = /0X1/ format %#X -1 = /-0X1/ format %#X 2^30 = /0X40000000/ format %#X -2^30 = /-0X40000000/ format %#o 0 = /0o0/ format %#o 1 = /0o1/ format %#o -1 = /-0o1/ format %#o 2^30 = /0o10000000000/ format %#o -2^30 = /-0o10000000000/ format %#10x 0 = / 0x0/ format %#10x 1 = / 0x1/ format %#10x -1 = / -0x1/ format %#10x 2^30 = /0x40000000/ format %#10x -2^30 = /-0x40000000/ format %#10X 0 = / 0X0/ format %#10X 1 = / 0X1/ format %#10X -1 = / -0X1/ format %#10X 2^30 = /0X40000000/ format %#10X -2^30 = /-0X40000000/ format %#10o 0 = / 0o0/ format %#10o 1 = / 0o1/ format %#10o -1 = / -0o1/ format %#10o 2^30 = /0o10000000000/ format %#10o -2^30 = /-0o10000000000/ format %#-10x 0 = /0x0 / format %#-10x 1 = /0x1 / format %#-10x -1 = /-0x1 / format %#-10x 2^30 = /0x40000000/ format %#-10x -2^30 = /-0x40000000/ format %#-10X 0 = /0X0 / format %#-10X 1 = /0X1 / format %#-10X -1 = /-0X1 / format %#-10X 2^30 = /0X40000000/ format %#-10X -2^30 = /-0X40000000/ format %#-10o 0 = /0o0 / format %#-10o 1 = /0o1 / format %#-10o -1 = /-0o1 / format %#-10o 2^30 = /0o10000000000/ format %#-10o -2^30 = /-0o10000000000/ extract 42 0 1 = 0 (passed) extract 42 0 5 = 10 (passed) extract 42 0 32 = 42 (passed) extract 42 0 64 = 42 (passed) extract 42 1 1 = 1 (passed) extract 42 1 5 = 21 (passed) extract 42 1 32 = 21 (passed) extract 42 1 63 = 21 (passed) extract 42 1 64 = 21 (passed) extract 42 1 127 = 21 (passed) extract 42 1 128 = 21 (passed) extract 42 69 12 = 0 (passed) extract -42 0 1 = 0 (passed) extract -42 0 5 = 22 (passed) extract -42 0 32 = 4294967254 (passed) extract -42 0 64 = 18446744073709551574 (passed) extract -42 1 1 = 1 (passed) extract -42 1 5 = 11 (passed) extract -42 1 32 = 4294967275 (passed) extract -42 1 63 = 9223372036854775787 (passed) extract -42 1 64 = 18446744073709551595 (passed) extract -42 1 127 = 170141183460469231731687303715884105707 (passed) extract -42 1 128 = 340282366920938463463374607431768211435 (passed) extract -42 69 12 = 4095 (passed) extract 3141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701 0 1 = 1 (passed) extract 3141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701 0 64 = 15536040655639606317 (passed) extract 3141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701 128 1 = 1 (passed) extract 3141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701 128 5 = 19 (passed) extract 3141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701 131 32 = 2516587394 (passed) extract 3141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701 175 63 = 7690089207107781587 (passed) extract 3141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701 277 123 = 9888429935207999867003931753264634841 (passed) signed_extract 42 0 1 = 0 (passed) signed_extract 42 0 5 = 10 (passed) signed_extract 42 0 32 = 42 (passed) signed_extract 42 0 64 = 42 (passed) signed_extract 42 1 1 = -1 (passed) signed_extract 42 1 5 = -11 (passed) signed_extract 42 1 32 = 21 (passed) signed_extract 42 1 63 = 21 (passed) signed_extract 42 1 64 = 21 (passed) signed_extract 42 1 127 = 21 (passed) signed_extract 42 1 128 = 21 (passed) signed_extract 42 69 12 = 0 (passed) signed_extract -42 0 1 = 0 (passed) signed_extract -42 0 5 = -10 (passed) signed_extract -42 0 32 = -42 (passed) signed_extract -42 0 64 = -42 (passed) signed_extract -42 1 1 = -1 (passed) signed_extract -42 1 5 = 11 (passed) signed_extract -42 1 32 = -21 (passed) signed_extract -42 1 63 = -21 (passed) signed_extract -42 1 64 = -21 (passed) signed_extract -42 1 127 = -21 (passed) signed_extract -42 1 128 = -21 (passed) signed_extract -42 69 12 = -1 (passed) signed_extract 3141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701 0 1 = -1 (passed) signed_extract 3141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701 0 64 = -2910703418069945299 (passed) signed_extract 3141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701 128 1 = -1 (passed) signed_extract 3141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701 128 5 = -13 (passed) signed_extract 3141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701 131 32 = -1778379902 (passed) signed_extract 3141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701 175 63 = -1533282829746994221 (passed) signed_extract 3141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701 277 123 = -745394031071327116226524728978121767 (passed) to_bits 0 = marshal round trip 0 = OK to_bits 2 = 02 00 00 00 marshal round trip 2 = OK to_bits -2 = 02 00 00 00 marshal round trip -2 = OK to_bits 1073741824 = 00 00 00 40 marshal round trip 1073741824 = OK to_bits -1073741824 = 00 00 00 40 marshal round trip -1073741824 = OK to_bits 4611686018427387904 = 00 00 00 00 00 00 00 40 marshal round trip 4611686018427387904 = OK to_bits -4611686018427387904 = 00 00 00 00 00 00 00 40 marshal round trip -4611686018427387904 = OK to_bits 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 marshal round trip 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 = OK to_bits 1329227995784915872903807060280344576 = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 marshal round trip 1329227995784915872903807060280344576 = OK to_bits 2658455991569831745807614120560689152 = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 marshal round trip 2658455991569831745807614120560689152 = OK to_bits 1073741823 = ff ff ff 3f marshal round trip 1073741823 = OK to_bits -1073741824 = 00 00 00 40 marshal round trip -1073741824 = OK to_bits 2147483647 = ff ff ff 7f marshal round trip 2147483647 = OK to_bits -2147483648 = 00 00 00 80 marshal round trip -2147483648 = OK to_bits 9223372036854775807 = ff ff ff ff ff ff ff 7f marshal round trip 9223372036854775807 = OK to_bits -9223372036854775808 = 00 00 00 00 00 00 00 80 marshal round trip -9223372036854775808 = OK to_bits 2147483647 = ff ff ff 7f marshal round trip 2147483647 = OK to_bits -2147483648 = 00 00 00 80 marshal round trip -2147483648 = OK testbit 0 (passed) testbit 1 (passed) testbit -42 (passed) testbit 31415926535897932384626433832795028841971693993751058209749445923078164062862089986 (passed) testbit -2277361236363886404304896 (passed) numbits / trailing_zeros 0 (passed) numbits / trailing_zeros 1 (passed) numbits / trailing_zeros -42 (passed) numbits / trailing_zeros 1511006158790834639735881728 (passed) numbits / trailing_zeros -2277361236363886404304896 (passed) random_bits 45 = 25076743995969 random_bits 45 = 33510880286625 random_bits 12 = 1263 random_int 123456 = 103797 random_int 9999999 = 1089068 - 0 = 0 - 1 = -1 - -1 = 1 - +inf = -inf - -inf = +inf - undef = undef 1/ 0 = +inf 1/ 1 = 1 1/ -1 = -1 1/ +inf = 0 1/ -inf = 0 1/ undef = undef abs 0 = 0 abs 1 = 1 abs -1 = 1 abs +inf = +inf abs -inf = +inf abs undef = undef 0 + 0 = 0 0 + 1 = 1 0 + -1 = -1 0 + +inf = +inf 0 + -inf = -inf 0 + undef = undef 1 + 0 = 1 1 + 1 = 2 1 + -1 = 0 1 + +inf = +inf 1 + -inf = -inf 1 + undef = undef -1 + 0 = -1 -1 + 1 = 0 -1 + -1 = -2 -1 + +inf = +inf -1 + -inf = -inf -1 + undef = undef +inf + 0 = +inf +inf + 1 = +inf +inf + -1 = +inf +inf + +inf = +inf +inf + -inf = undef +inf + undef = undef -inf + 0 = -inf -inf + 1 = -inf -inf + -1 = -inf -inf + +inf = undef -inf + -inf = -inf -inf + undef = undef undef + 0 = undef undef + 1 = undef undef + -1 = undef undef + +inf = undef undef + -inf = undef undef + undef = undef 0 - 0 = 0 0 - 1 = -1 0 - -1 = 1 0 - +inf = -inf 0 - -inf = +inf 0 - undef = undef 1 - 0 = 1 1 - 1 = 0 1 - -1 = 2 1 - +inf = -inf 1 - -inf = +inf 1 - undef = undef -1 - 0 = -1 -1 - 1 = -2 -1 - -1 = 0 -1 - +inf = -inf -1 - -inf = +inf -1 - undef = undef +inf - 0 = +inf +inf - 1 = +inf +inf - -1 = +inf +inf - +inf = undef +inf - -inf = +inf +inf - undef = undef -inf - 0 = -inf -inf - 1 = -inf -inf - -1 = -inf -inf - +inf = -inf -inf - -inf = undef -inf - undef = undef undef - 0 = undef undef - 1 = undef undef - -1 = undef undef - +inf = undef undef - -inf = undef undef - undef = undef 0 * 0 = 0 0 * 1 = 0 0 * -1 = 0 0 * +inf = undef 0 * -inf = undef 0 * undef = undef 1 * 0 = 0 1 * 1 = 1 1 * -1 = -1 1 * +inf = +inf 1 * -inf = -inf 1 * undef = undef -1 * 0 = 0 -1 * 1 = -1 -1 * -1 = 1 -1 * +inf = -inf -1 * -inf = +inf -1 * undef = undef +inf * 0 = undef +inf * 1 = +inf +inf * -1 = -inf +inf * +inf = +inf +inf * -inf = -inf +inf * undef = undef -inf * 0 = undef -inf * 1 = -inf -inf * -1 = +inf -inf * +inf = -inf -inf * -inf = +inf -inf * undef = undef undef * 0 = undef undef * 1 = undef undef * -1 = undef undef * +inf = undef undef * -inf = undef undef * undef = undef 0 / 0 = undef 0 / 1 = 0 0 / -1 = 0 0 / +inf = 0 0 / -inf = 0 0 / undef = undef 1 / 0 = +inf 1 / 1 = 1 1 / -1 = -1 1 / +inf = 0 1 / -inf = 0 1 / undef = undef -1 / 0 = -inf -1 / 1 = -1 -1 / -1 = 1 -1 / +inf = 0 -1 / -inf = 0 -1 / undef = undef +inf / 0 = +inf +inf / 1 = +inf +inf / -1 = -inf +inf / +inf = undef +inf / -inf = undef +inf / undef = undef -inf / 0 = -inf -inf / 1 = -inf -inf / -1 = +inf -inf / +inf = undef -inf / -inf = undef -inf / undef = undef undef / 0 = undef undef / 1 = undef undef / -1 = undef undef / +inf = undef undef / -inf = undef undef / undef = undef 0 * 1/ 0 = undef 0 * 1/ 1 = 0 0 * 1/ -1 = 0 0 * 1/ +inf = 0 0 * 1/ -inf = 0 0 * 1/ undef = undef 1 * 1/ 0 = +inf 1 * 1/ 1 = 1 1 * 1/ -1 = -1 1 * 1/ +inf = 0 1 * 1/ -inf = 0 1 * 1/ undef = undef -1 * 1/ 0 = -inf -1 * 1/ 1 = -1 -1 * 1/ -1 = 1 -1 * 1/ +inf = 0 -1 * 1/ -inf = 0 -1 * 1/ undef = undef +inf * 1/ 0 = +inf +inf * 1/ 1 = +inf +inf * 1/ -1 = -inf +inf * 1/ +inf = undef +inf * 1/ -inf = undef +inf * 1/ undef = undef -inf * 1/ 0 = -inf -inf * 1/ 1 = -inf -inf * 1/ -1 = +inf -inf * 1/ +inf = undef -inf * 1/ -inf = undef -inf * 1/ undef = undef undef * 1/ 0 = undef undef * 1/ 1 = undef undef * 1/ -1 = undef undef * 1/ +inf = undef undef * 1/ -inf = undef undef * 1/ undef = undef mul_2exp (1) 0 = 0 mul_2exp (1) 1 = 2 mul_2exp (1) -1 = -2 mul_2exp (1) +inf = +inf mul_2exp (1) -inf = -inf mul_2exp (1) undef = undef mul_2exp (2) 0 = 0 mul_2exp (2) 1 = 4 mul_2exp (2) -1 = -4 mul_2exp (2) +inf = +inf mul_2exp (2) -inf = -inf mul_2exp (2) undef = undef div_2exp (1) 0 = 0 div_2exp (1) 1 = 1/2 div_2exp (1) -1 = -1/2 div_2exp (1) +inf = +inf div_2exp (1) -inf = -inf div_2exp (1) undef = undef div_2exp (2) 0 = 0 div_2exp (2) 1 = 1/4 div_2exp (2) -1 = -1/4 div_2exp (2) +inf = +inf div_2exp (2) -inf = -inf div_2exp (2) undef = undef identity checking 0 0 identity checking 0 1 identity checking 0 -1 identity checking 0 +inf identity checking 0 -inf identity checking 0 undef identity checking 1 0 identity checking 1 1 identity checking 1 -1 identity checking 1 +inf identity checking 1 -inf identity checking 1 undef identity checking -1 0 identity checking -1 1 identity checking -1 -1 identity checking -1 +inf identity checking -1 -inf identity checking -1 undef identity checking +inf 0 identity checking +inf 1 identity checking +inf -1 identity checking +inf +inf identity checking +inf -inf identity checking +inf undef identity checking -inf 0 identity checking -inf 1 identity checking -inf -1 identity checking -inf +inf identity checking -inf -inf identity checking -inf undef identity checking undef 0 identity checking undef 1 identity checking undef -1 identity checking undef +inf identity checking undef -inf identity checking undef undef