{ "abi": [], "bytecode": { "object": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206969cb09aa8bcfa4f9201fc201ab72e8b4d2a48b4c63fe3002e5c2b24c93c65764736f6c63430008160033", "sourceMap": "115:1845:65:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;115:1845:65;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { "object": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206969cb09aa8bcfa4f9201fc201ab72e8b4d2a48b4c63fe3002e5c2b24c93c65764736f6c63430008160033", "sourceMap": "115:1845:65:-:0;;;;;;;;", "linkReferences": {} }, "methodIdentifiers": {}, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/TestIEEE754.sol\":\"IEEE754\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":true,\"yulDetails\":{\"optimizerSteps\":\"dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu\",\"stackAllocation\":true}},\"runs\":999999999},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/v3-core/=lib_uniswap/v3-core/\",\":@uniswap/v3-periphery/=lib_uniswap/v3-periphery/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":v3-core/=lib_uniswap/v3-core/\",\":v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/\"]},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x51e6eb138fc953fac1ac78012a39b3f16d9289ce06a222ba93bb0621768f96e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://653c577e054cf578594148a07b286571d494f401b6d4a940d3ccabd47b29233d\",\"dweb:/ipfs/QmTWDVvR4m82MGXWYY8BCaVN89TguQJSLqRgzHzrMkFHtx\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x2e1b4b99283c16efaf155f7e55ea357943cf6e61fc02aad060534349f63b6cd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d471a35903e8a367a145ca5b5955caf691c723fe1117c6dcffd928d9f8d7c95a\",\"dweb:/ipfs/QmXGnFUGiX9APL8xit7NZQEYBoEL3wWyW1YyFoJQd2pGPe\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xf5762db8ef95099bbe77578cd9349511ed77f4dd63ec98cc6b7cd711447830c1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6b0360806a9804eac0f7e07492b5db9c4953c521dabb9a11b17dd610d5b804c\",\"dweb:/ipfs/QmUFozSt3W7drBRdm1cdRow61EABqSLJtkvYZXWmoHUPss\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x391a28a2e54aea51a6fb03a3a48035304ca4d24bc669ddf3d4c152c7162e514d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://475fd0d87ccb0fdc4418dea2babffb4adb4aafb817e61f7ef31c2303f10c6c26\",\"dweb:/ipfs/QmQgcgtZxpkW6DRmbJszN1F8mU6zhaTZGdWWsj77yCuWN9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x8758c42ba9d9e46868b796e2330ac239006ede07bd438a4b36dd6f2c47d27dc1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11f5752e0187b1e3631b875efdbe05d45929d05f1c1717105a9115d0a6628140\",\"dweb:/ipfs/QmUKkx9jfsUvjyYBw45RvrW1hTFXDXi2Jv5tbHP86mnzpi\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xf3b62c75cea11a0e8ef8e6526e5e5c74ae47a892b9bcefc0e98d76066e1ffd24\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a41faaf836453e02c71fc272c80b3c90a614b30c9ba636512db0d033c7b93beb\",\"dweb:/ipfs/QmeQAreYYaxztQtFLQdHCzCPEorj9T5foSu2hQmxk7xT5x\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xb569d0b4398fad95f508fb854e832143edf69a897af4250f5f60fe195a2066c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84b722ada97ea7bb841cdc0fa556aa36a02ff2d380fa24f6dc0717a71c6d9c7c\",\"dweb:/ipfs/QmfCH9Q4tvJhPM286GFsE4UCP4YncLpRu4Nwa2ZkHdRfbw\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"test/TestIEEE754.sol\":{\"keccak256\":\"0x5e93ca039c105bb9e6d28c634ca32dfa615acb5d4f07fd1b7f5c3ea2265b8072\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e4c15b9869557d0163d4524a61807f30f83890080b29ce2291c338348947ac69\",\"dweb:/ipfs/QmZrpb1bfFy79hzk4uTCYY8dqn3941WaHtbGyM97isgLR1\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.22+commit.4fc1097e" }, "language": "Solidity", "output": { "abi": [], "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, "userdoc": { "kind": "user", "methods": {}, "version": 1 } }, "settings": { "remappings": [ "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", "@uniswap/v3-core/=lib_uniswap/v3-core/", "@uniswap/v3-periphery/=lib_uniswap/v3-periphery/", "ds-test/=lib/forge-std/lib/ds-test/src/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "v3-core/=lib_uniswap/v3-core/", "v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/" ], "optimizer": { "runs": 999999999, "details": { "peephole": true, "inliner": true, "jumpdestRemover": true, "orderLiterals": true, "deduplicate": true, "cse": true, "constantOptimizer": true, "yul": true, "yulDetails": { "stackAllocation": true, "optimizerSteps": "dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu" } } }, "metadata": { "bytecodeHash": "ipfs" }, "compilationTarget": { "test/TestIEEE754.sol": "IEEE754" }, "libraries": {} }, "sources": { "lib/forge-std/lib/ds-test/src/test.sol": { "keccak256": "0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b", "urls": [ "bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240", "dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k" ], "license": "GPL-3.0-or-later" }, "lib/forge-std/src/Base.sol": { "keccak256": "0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c", "urls": [ "bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224", "dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK" ], "license": "MIT" }, "lib/forge-std/src/StdAssertions.sol": { "keccak256": "0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60", "urls": [ "bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b", "dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL" ], "license": "MIT" }, "lib/forge-std/src/StdChains.sol": { "keccak256": "0x51e6eb138fc953fac1ac78012a39b3f16d9289ce06a222ba93bb0621768f96e6", "urls": [ "bzz-raw://653c577e054cf578594148a07b286571d494f401b6d4a940d3ccabd47b29233d", "dweb:/ipfs/QmTWDVvR4m82MGXWYY8BCaVN89TguQJSLqRgzHzrMkFHtx" ], "license": "MIT" }, "lib/forge-std/src/StdCheats.sol": { "keccak256": "0x2e1b4b99283c16efaf155f7e55ea357943cf6e61fc02aad060534349f63b6cd5", "urls": [ "bzz-raw://d471a35903e8a367a145ca5b5955caf691c723fe1117c6dcffd928d9f8d7c95a", "dweb:/ipfs/QmXGnFUGiX9APL8xit7NZQEYBoEL3wWyW1YyFoJQd2pGPe" ], "license": "MIT" }, "lib/forge-std/src/StdError.sol": { "keccak256": "0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77", "urls": [ "bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6", "dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj" ], "license": "MIT" }, "lib/forge-std/src/StdInvariant.sol": { "keccak256": "0xf5762db8ef95099bbe77578cd9349511ed77f4dd63ec98cc6b7cd711447830c1", "urls": [ "bzz-raw://a6b0360806a9804eac0f7e07492b5db9c4953c521dabb9a11b17dd610d5b804c", "dweb:/ipfs/QmUFozSt3W7drBRdm1cdRow61EABqSLJtkvYZXWmoHUPss" ], "license": "MIT" }, "lib/forge-std/src/StdJson.sol": { "keccak256": "0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b", "urls": [ "bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c", "dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV" ], "license": "MIT" }, "lib/forge-std/src/StdMath.sol": { "keccak256": "0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2", "urls": [ "bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92", "dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC" ], "license": "MIT" }, "lib/forge-std/src/StdStorage.sol": { "keccak256": "0x391a28a2e54aea51a6fb03a3a48035304ca4d24bc669ddf3d4c152c7162e514d", "urls": [ "bzz-raw://475fd0d87ccb0fdc4418dea2babffb4adb4aafb817e61f7ef31c2303f10c6c26", "dweb:/ipfs/QmQgcgtZxpkW6DRmbJszN1F8mU6zhaTZGdWWsj77yCuWN9" ], "license": "MIT" }, "lib/forge-std/src/StdStyle.sol": { "keccak256": "0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d", "urls": [ "bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8", "dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK" ], "license": "MIT" }, "lib/forge-std/src/StdUtils.sol": { "keccak256": "0x8758c42ba9d9e46868b796e2330ac239006ede07bd438a4b36dd6f2c47d27dc1", "urls": [ "bzz-raw://11f5752e0187b1e3631b875efdbe05d45929d05f1c1717105a9115d0a6628140", "dweb:/ipfs/QmUKkx9jfsUvjyYBw45RvrW1hTFXDXi2Jv5tbHP86mnzpi" ], "license": "MIT" }, "lib/forge-std/src/Test.sol": { "keccak256": "0xf3b62c75cea11a0e8ef8e6526e5e5c74ae47a892b9bcefc0e98d76066e1ffd24", "urls": [ "bzz-raw://a41faaf836453e02c71fc272c80b3c90a614b30c9ba636512db0d033c7b93beb", "dweb:/ipfs/QmeQAreYYaxztQtFLQdHCzCPEorj9T5foSu2hQmxk7xT5x" ], "license": "MIT" }, "lib/forge-std/src/Vm.sol": { "keccak256": "0xb569d0b4398fad95f508fb854e832143edf69a897af4250f5f60fe195a2066c5", "urls": [ "bzz-raw://84b722ada97ea7bb841cdc0fa556aa36a02ff2d380fa24f6dc0717a71c6d9c7c", "dweb:/ipfs/QmfCH9Q4tvJhPM286GFsE4UCP4YncLpRu4Nwa2ZkHdRfbw" ], "license": "MIT" }, "lib/forge-std/src/console.sol": { "keccak256": "0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba", "urls": [ "bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70", "dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec" ], "license": "MIT" }, "lib/forge-std/src/console2.sol": { "keccak256": "0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea", "urls": [ "bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973", "dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF" ], "license": "MIT" }, "lib/forge-std/src/interfaces/IMulticall3.sol": { "keccak256": "0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a", "urls": [ "bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0", "dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2" ], "license": "MIT" }, "lib/forge-std/src/safeconsole.sol": { "keccak256": "0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381", "urls": [ "bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae", "dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq" ], "license": "MIT" }, "test/TestIEEE754.sol": { "keccak256": "0x5e93ca039c105bb9e6d28c634ca32dfa615acb5d4f07fd1b7f5c3ea2265b8072", "urls": [ "bzz-raw://e4c15b9869557d0163d4524a61807f30f83890080b29ce2291c338348947ac69", "dweb:/ipfs/QmZrpb1bfFy79hzk4uTCYY8dqn3941WaHtbGyM97isgLR1" ], "license": "UNLICENSED" } }, "version": 1 }, "ast": { "absolutePath": "test/TestIEEE754.sol", "id": 50824, "exportedSymbols": { "DSTest": [ 2291 ], "IEEE754": [ 50578 ], "StdAssertions": [ 3823 ], "StdChains": [ 4516 ], "StdCheats": [ 7334 ], "StdInvariant": [ 7624 ], "StdStorage": [ 8374 ], "StdStyle": [ 11038 ], "StdUtils": [ 11886 ], "Test": [ 11937 ], "TestBase": [ 2357 ], "TestIEEE754": [ 50823 ], "Vm": [ 13464 ], "console": [ 21528 ], "console2": [ 29653 ], "safeconsole": [ 42891 ], "stdError": [ 7400 ], "stdJson": [ 8200 ], "stdMath": [ 8342 ], "stdStorage": [ 9827 ] }, "nodeType": "SourceUnit", "src": "39:4089:65", "nodes": [ { "id": 50396, "nodeType": "PragmaDirective", "src": "39:24:65", "nodes": [], "literals": [ "solidity", ">=", "0.8", ".0" ] }, { "id": 50397, "nodeType": "PragmaDirective", "src": "64:19:65", "nodes": [], "literals": [ "abicoder", "v2" ] }, { "id": 50398, "nodeType": "ImportDirective", "src": "85:28:65", "nodes": [], "absolutePath": "lib/forge-std/src/Test.sol", "file": "forge-std/Test.sol", "nameLocation": "-1:-1:-1", "scope": 50824, "sourceUnit": 11938, "symbolAliases": [], "unitAlias": "" }, { "id": 50578, "nodeType": "ContractDefinition", "src": "115:1845:65", "nodes": [ { "id": 50436, "nodeType": "FunctionDefinition", "src": "177:195:65", "nodes": [], "body": { "id": 50435, "nodeType": "Block", "src": "251:121:65", "nodes": [], "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 50414, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50410, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50408, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50402, "src": "269:1:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "hexValue": "31", "id": 50409, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "274:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "269:6:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50413, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50411, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50402, "src": "279:1:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "hexValue": "323536", "id": 50412, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "284:3:65", "typeDescriptions": { "typeIdentifier": "t_rational_256_by_1", "typeString": "int_const 256" }, "value": "256" }, "src": "279:8:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "269:18:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "7020696e76616c6964", "id": 50415, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "289:11:65", "typeDescriptions": { "typeIdentifier": "t_stringliteral_8b592306eed1055dcdd948ca29407a1249cfe3e804496b2ead930aac834cd721", "typeString": "literal_string \"p invalid\"" }, "value": "p invalid" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_8b592306eed1055dcdd948ca29407a1249cfe3e804496b2ead930aac834cd721", "typeString": "literal_string \"p invalid\"" } ], "id": 50407, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "261:7:65", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 50416, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "261:40:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50417, "nodeType": "ExpressionStatement", "src": "261:40:65" }, { "assignments": [ 50419 ], "declarations": [ { "constant": false, "id": 50419, "mutability": "mutable", "name": "s", "nameLocation": "319:1:65", "nodeType": "VariableDeclaration", "scope": 50435, "src": "311:9:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 50418, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "311:7:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 50423, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50422, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "323536", "id": 50420, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "323:3:65", "typeDescriptions": { "typeIdentifier": "t_rational_256_by_1", "typeString": "int_const 256" }, "value": "256" }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "id": 50421, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50402, "src": "329:1:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "323:7:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "311:19:65" }, { "expression": { "id": 50433, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50424, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50405, "src": "340:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50432, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50429, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50427, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50400, "src": "352:1:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "id": 50428, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50419, "src": "357:1:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "352:6:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 50426, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "344:6:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": { "id": 50425, "name": "int256", "nodeType": "ElementaryTypeName", "src": "344:6:65", "typeDescriptions": {} } }, "id": 50430, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "344:16:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">>", "rightExpression": { "id": 50431, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50419, "src": "364:1:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "344:21:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "340:25:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 50434, "nodeType": "ExpressionStatement", "src": "340:25:65" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "bits2int", "nameLocation": "186:8:65", "parameters": { "id": 50403, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 50400, "mutability": "mutable", "name": "b", "nameLocation": "204:1:65", "nodeType": "VariableDeclaration", "scope": 50436, "src": "196:9:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 50399, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "196:7:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 50402, "mutability": "mutable", "name": "p", "nameLocation": "215:1:65", "nodeType": "VariableDeclaration", "scope": 50436, "src": "207:9:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 50401, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "207:7:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "195:22:65" }, "returnParameters": { "id": 50406, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 50405, "mutability": "mutable", "name": "r", "nameLocation": "248:1:65", "nodeType": "VariableDeclaration", "scope": 50436, "src": "241:8:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 50404, "name": "int256", "nodeType": "ElementaryTypeName", "src": "241:6:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" } ], "src": "240:10:65" }, "scope": 50578, "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "id": 50439, "nodeType": "VariableDeclaration", "src": "378:41:65", "nodes": [], "constant": true, "mutability": "constant", "name": "EBIAS", "nameLocation": "403:5:65", "scope": 50578, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" }, "typeName": { "id": 50437, "name": "int32", "nodeType": "ElementaryTypeName", "src": "378:5:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "value": { "hexValue": "313237", "id": 50438, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "416:3:65", "typeDescriptions": { "typeIdentifier": "t_rational_127_by_1", "typeString": "int_const 127" }, "value": "127" }, "visibility": "internal" }, { "id": 50442, "nodeType": "VariableDeclaration", "src": "425:42:65", "nodes": [], "constant": true, "mutability": "constant", "name": "ENAN", "nameLocation": "450:4:65", "scope": 50578, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" }, "typeName": { "id": 50440, "name": "int32", "nodeType": "ElementaryTypeName", "src": "425:5:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "value": { "hexValue": "30786666", "id": 50441, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "463:4:65", "typeDescriptions": { "typeIdentifier": "t_rational_255_by_1", "typeString": "int_const 255" }, "value": "0xff" }, "visibility": "internal" }, { "id": 50445, "nodeType": "VariableDeclaration", "src": "499:39:65", "nodes": [], "constant": true, "mutability": "constant", "name": "ESUBNORM", "nameLocation": "524:8:65", "scope": 50578, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" }, "typeName": { "id": 50443, "name": "int32", "nodeType": "ElementaryTypeName", "src": "499:5:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "value": { "hexValue": "30", "id": 50444, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "537:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "visibility": "internal" }, { "id": 50448, "nodeType": "VariableDeclaration", "src": "545:49:65", "nodes": [], "constant": true, "mutability": "constant", "name": "SIGN_MASK", "nameLocation": "570:9:65", "scope": 50578, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 50446, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "545:6:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": { "hexValue": "3078383030305f30303030", "id": 50447, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "583:11:65", "typeDescriptions": { "typeIdentifier": "t_rational_2147483648_by_1", "typeString": "int_const 2147483648" }, "value": "0x8000_0000" }, "visibility": "internal" }, { "id": 50451, "nodeType": "VariableDeclaration", "src": "600:49:65", "nodes": [], "constant": true, "mutability": "constant", "name": "EXP_MASK", "nameLocation": "625:8:65", "scope": 50578, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 50449, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "600:6:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": { "hexValue": "3078376638305f30303030", "id": 50450, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "638:11:65", "typeDescriptions": { "typeIdentifier": "t_rational_2139095040_by_1", "typeString": "int_const 2139095040" }, "value": "0x7f80_0000" }, "visibility": "internal" }, { "id": 50454, "nodeType": "VariableDeclaration", "src": "655:49:65", "nodes": [], "constant": true, "mutability": "constant", "name": "MANT_MASK", "nameLocation": "680:9:65", "scope": 50578, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 50452, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "655:6:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": { "hexValue": "3078303037665f66666666", "id": 50453, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "693:11:65", "typeDescriptions": { "typeIdentifier": "t_rational_8388607_by_1", "typeString": "int_const 8388607" }, "value": "0x007f_ffff" }, "visibility": "internal" }, { "id": 50459, "nodeType": "VariableDeclaration", "src": "710:58:65", "nodes": [], "constant": true, "mutability": "constant", "name": "ZERO_MASK", "nameLocation": "735:9:65", "scope": 50578, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 50455, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "710:6:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 50458, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "id": 50456, "name": "EXP_MASK", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50451, "src": "748:8:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "|", "rightExpression": { "id": 50457, "name": "MANT_MASK", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50454, "src": "759:9:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "748:20:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "id": 50462, "nodeType": "VariableDeclaration", "src": "774:49:65", "nodes": [], "constant": true, "mutability": "constant", "name": "MSB", "nameLocation": "799:3:65", "scope": 50578, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" }, "typeName": { "id": 50460, "name": "int32", "nodeType": "ElementaryTypeName", "src": "774:5:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "value": { "hexValue": "3078303038305f30303030", "id": 50461, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "812:11:65", "typeDescriptions": { "typeIdentifier": "t_rational_8388608_by_1", "typeString": "int_const 8388608" }, "value": "0x0080_0000" }, "visibility": "internal" }, { "id": 50577, "nodeType": "FunctionDefinition", "src": "852:1106:65", "nodes": [], "body": { "id": 50576, "nodeType": "Block", "src": "955:1003:65", "nodes": [], "statements": [ { "id": 50575, "nodeType": "UncheckedBlock", "src": "956:1001:65", "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 50475, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 50473, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50471, "name": "floatingPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50464, "src": "1002:13:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "&", "rightExpression": { "id": 50472, "name": "ZERO_MASK", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50459, "src": "1018:9:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "1002:25:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 50474, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1031:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1002:30:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 50478, "nodeType": "IfStatement", "src": "998:44:65", "trueBody": { "expression": { "hexValue": "30", "id": 50476, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1041:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "functionReturnParameters": 50470, "id": 50477, "nodeType": "Return", "src": "1034:8:65" } }, { "assignments": [ 50480 ], "declarations": [ { "constant": false, "id": 50480, "mutability": "mutable", "name": "exp", "nameLocation": "1095:3:65", "nodeType": "VariableDeclaration", "scope": 50575, "src": "1088:10:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" }, "typeName": { "id": 50479, "name": "int32", "nodeType": "ElementaryTypeName", "src": "1088:5:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "visibility": "internal" } ], "id": 50489, "initialValue": { "commonType": { "typeIdentifier": "t_int32", "typeString": "int32" }, "id": 50488, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 50485, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50483, "name": "floatingPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50464, "src": "1107:13:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "&", "rightExpression": { "id": 50484, "name": "EXP_MASK", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50451, "src": "1123:8:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "1107:24:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint32", "typeString": "uint32" } ], "id": 50482, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1101:5:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_int32_$", "typeString": "type(int32)" }, "typeName": { "id": 50481, "name": "int32", "nodeType": "ElementaryTypeName", "src": "1101:5:65", "typeDescriptions": {} } }, "id": 50486, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1101:31:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "nodeType": "BinaryOperation", "operator": ">>", "rightExpression": { "hexValue": "3233", "id": 50487, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1136:2:65", "typeDescriptions": { "typeIdentifier": "t_rational_23_by_1", "typeString": "int_const 23" }, "value": "23" }, "src": "1101:37:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "nodeType": "VariableDeclarationStatement", "src": "1088:50:65" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_int32", "typeString": "int32" }, "id": 50493, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50491, "name": "exp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50480, "src": "1157:3:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "id": 50492, "name": "ENAN", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50442, "src": "1164:4:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "src": "1157:11:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4e614e206e6f7420737570706f72746564", "id": 50494, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1170:19:65", "typeDescriptions": { "typeIdentifier": "t_stringliteral_99bebfbf084fa3004c97aa5e5b0e6afbfdbe84ab9e1227d03f980ea0e8bf4b1e", "typeString": "literal_string \"NaN not supported\"" }, "value": "NaN not supported" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_99bebfbf084fa3004c97aa5e5b0e6afbfdbe84ab9e1227d03f980ea0e8bf4b1e", "typeString": "literal_string \"NaN not supported\"" } ], "id": 50490, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1148:7:65", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 50495, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1148:42:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50496, "nodeType": "ExpressionStatement", "src": "1148:42:65" }, { "assignments": [ 50498 ], "declarations": [ { "constant": false, "id": 50498, "mutability": "mutable", "name": "mant", "nameLocation": "1240:4:65", "nodeType": "VariableDeclaration", "scope": 50575, "src": "1233:11:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 50497, "name": "int256", "nodeType": "ElementaryTypeName", "src": "1233:6:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" } ], "id": 50505, "initialValue": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 50503, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50501, "name": "floatingPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50464, "src": "1253:13:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "&", "rightExpression": { "id": 50502, "name": "MANT_MASK", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50454, "src": "1269:9:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "1253:25:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint32", "typeString": "uint32" } ], "id": 50500, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1247:5:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_int32_$", "typeString": "type(int32)" }, "typeName": { "id": 50499, "name": "int32", "nodeType": "ElementaryTypeName", "src": "1247:5:65", "typeDescriptions": {} } }, "id": 50504, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1247:32:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "nodeType": "VariableDeclarationStatement", "src": "1233:46:65" }, { "condition": { "commonType": { "typeIdentifier": "t_int32", "typeString": "int32" }, "id": 50508, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50506, "name": "exp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50480, "src": "1293:3:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "id": 50507, "name": "ESUBNORM", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50445, "src": "1300:8:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "src": "1293:15:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 50513, "nodeType": "IfStatement", "src": "1289:32:65", "trueBody": { "expression": { "id": 50511, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50509, "name": "mant", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50498, "src": "1310:4:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "|=", "rightHandSide": { "id": 50510, "name": "MSB", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50462, "src": "1318:3:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "src": "1310:11:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 50512, "nodeType": "ExpressionStatement", "src": "1310:11:65" } }, { "condition": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 50518, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 50516, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50514, "name": "floatingPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50464, "src": "1387:13:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "&", "rightExpression": { "id": 50515, "name": "SIGN_MASK", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50448, "src": "1403:9:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "1387:25:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "hexValue": "30", "id": 50517, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1416:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1387:30:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 50524, "nodeType": "IfStatement", "src": "1383:48:65", "trueBody": { "expression": { "id": 50522, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50519, "name": "mant", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50498, "src": "1419:4:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 50521, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "-", "prefix": true, "src": "1426:5:65", "subExpression": { "id": 50520, "name": "mant", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50498, "src": "1427:4:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1419:12:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 50523, "nodeType": "ExpressionStatement", "src": "1419:12:65" } }, { "expression": { "id": 50529, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50525, "name": "exp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50480, "src": "1501:3:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_int32", "typeString": "int32" }, "id": 50528, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50526, "name": "exp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50480, "src": "1507:3:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "id": 50527, "name": "EBIAS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50439, "src": "1513:5:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "src": "1507:11:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "src": "1501:17:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "id": 50530, "nodeType": "ExpressionStatement", "src": "1501:17:65" }, { "assignments": [ 50532 ], "declarations": [ { "constant": false, "id": 50532, "mutability": "mutable", "name": "rshft", "nameLocation": "1559:5:65", "nodeType": "VariableDeclaration", "scope": 50575, "src": "1552:12:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 50531, "name": "int256", "nodeType": "ElementaryTypeName", "src": "1552:6:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" } ], "id": 50541, "initialValue": { "commonType": { "typeIdentifier": "t_int32", "typeString": "int32" }, "id": 50540, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_int32", "typeString": "int32" }, "id": 50538, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "3233", "id": 50533, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1567:2:65", "typeDescriptions": { "typeIdentifier": "t_rational_23_by_1", "typeString": "int_const 23" }, "value": "23" }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "arguments": [ { "id": 50536, "name": "fixedBits", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50466, "src": "1578:9:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint32", "typeString": "uint32" } ], "id": 50535, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1572:5:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_int32_$", "typeString": "type(int32)" }, "typeName": { "id": 50534, "name": "int32", "nodeType": "ElementaryTypeName", "src": "1572:5:65", "typeDescriptions": {} } }, "id": 50537, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1572:16:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "src": "1567:21:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "id": 50539, "name": "exp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50480, "src": "1591:3:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "src": "1567:27:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "nodeType": "VariableDeclarationStatement", "src": "1552:42:65" }, { "condition": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50544, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50542, "name": "rshft", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50532, "src": "1721:5:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "hexValue": "30", "id": 50543, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1729:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1721:9:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50557, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50555, "name": "rshft", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50532, "src": "1820:5:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "hexValue": "30", "id": 50556, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1828:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1820:9:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "expression": { "id": 50569, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50567, "name": "fixedPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50469, "src": "1905:10:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 50568, "name": "mant", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50498, "src": "1918:4:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1905:17:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 50570, "nodeType": "ExpressionStatement", "src": "1905:17:65" }, "id": 50571, "nodeType": "IfStatement", "src": "1816:106:65", "trueBody": { "expression": { "id": 50565, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50558, "name": "fixedPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50469, "src": "1843:10:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50564, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50559, "name": "mant", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50498, "src": "1856:4:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">>", "rightExpression": { "arguments": [ { "id": 50562, "name": "rshft", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50532, "src": "1872:5:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 50561, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1864:7:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 50560, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1864:7:65", "typeDescriptions": {} } }, "id": 50563, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1864:14:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1856:22:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1843:35:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 50566, "nodeType": "ExpressionStatement", "src": "1843:35:65" } }, "id": 50572, "nodeType": "IfStatement", "src": "1717:205:65", "trueBody": { "expression": { "id": 50553, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50545, "name": "fixedPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50469, "src": "1765:10:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50552, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50546, "name": "mant", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50498, "src": "1778:4:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "arguments": [ { "id": 50550, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "-", "prefix": true, "src": "1794:6:65", "subExpression": { "id": 50549, "name": "rshft", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50532, "src": "1795:5:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 50548, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1786:7:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 50547, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1786:7:65", "typeDescriptions": {} } }, "id": 50551, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1786:15:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1778:23:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1765:36:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 50554, "nodeType": "ExpressionStatement", "src": "1765:36:65" } }, { "expression": { "id": 50573, "name": "fixedPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50469, "src": "1940:10:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "functionReturnParameters": 50470, "id": 50574, "nodeType": "Return", "src": "1933:17:65" } ] } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "float2fixed", "nameLocation": "861:11:65", "parameters": { "id": 50467, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 50464, "mutability": "mutable", "name": "floatingPoint", "nameLocation": "880:13:65", "nodeType": "VariableDeclaration", "scope": 50577, "src": "873:20:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 50463, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "873:6:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 50466, "mutability": "mutable", "name": "fixedBits", "nameLocation": "902:9:65", "nodeType": "VariableDeclaration", "scope": 50577, "src": "895:16:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 50465, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "895:6:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" } ], "src": "872:40:65" }, "returnParameters": { "id": 50470, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 50469, "mutability": "mutable", "name": "fixedPoint", "nameLocation": "943:10:65", "nodeType": "VariableDeclaration", "scope": 50577, "src": "936:17:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 50468, "name": "int256", "nodeType": "ElementaryTypeName", "src": "936:6:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" } ], "src": "935:19:65" }, "scope": 50578, "stateMutability": "pure", "virtual": false, "visibility": "internal" } ], "abstract": false, "baseContracts": [], "canonicalName": "IEEE754", "contractDependencies": [], "contractKind": "library", "fullyImplemented": true, "linearizedBaseContracts": [ 50578 ], "name": "IEEE754", "nameLocation": "123:7:65", "scope": 50824, "usedErrors": [], "usedEvents": [] }, { "id": 50823, "nodeType": "ContractDefinition", "src": "1962:2165:65", "nodes": [ { "id": 50590, "nodeType": "FunctionDefinition", "src": "1998:81:65", "nodes": [], "body": { "id": 50589, "nodeType": "Block", "src": "2029:50:65", "nodes": [], "statements": [ { "expression": { "arguments": [ { "hexValue": "54657374466c6f61742073657475702829", "id": 50586, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2052:19:65", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0896eb74f075dd684f424c18206056b75abfca11e5ce3995711820731e6a9cc1", "typeString": "literal_string \"TestFloat setup()\"" }, "value": "TestFloat setup()" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_0896eb74f075dd684f424c18206056b75abfca11e5ce3995711820731e6a9cc1", "typeString": "literal_string \"TestFloat setup()\"" } ], "expression": { "id": 50583, "name": "console2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 29653, "src": "2039:8:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_console2_$29653_$", "typeString": "type(library console2)" } }, "id": 50585, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2048:3:65", "memberName": "log", "nodeType": "MemberAccess", "referencedDeclaration": 22167, "src": "2039:12:65", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 50587, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2039:33:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50588, "nodeType": "ExpressionStatement", "src": "2039:33:65" } ] }, "functionSelector": "0a9254e4", "implemented": true, "kind": "function", "modifiers": [], "name": "setUp", "nameLocation": "2007:5:65", "parameters": { "id": 50581, "nodeType": "ParameterList", "parameters": [], "src": "2012:2:65" }, "returnParameters": { "id": 50582, "nodeType": "ParameterList", "parameters": [], "src": "2029:0:65" }, "scope": 50823, "stateMutability": "pure", "virtual": false, "visibility": "external" }, { "id": 50593, "nodeType": "VariableDeclaration", "src": "2110:34:65", "nodes": [], "constant": true, "mutability": "constant", "name": "umin", "nameLocation": "2136:4:65", "scope": 50823, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 50591, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2110:7:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "hexValue": "30", "id": 50592, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2143:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "visibility": "internal" }, { "id": 50597, "nodeType": "VariableDeclaration", "src": "2150:38:65", "nodes": [], "constant": true, "mutability": "constant", "name": "umax", "nameLocation": "2176:4:65", "scope": 50823, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 50594, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2150:7:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "id": 50596, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "~", "prefix": true, "src": "2183:5:65", "subExpression": { "id": 50595, "name": "umin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50593, "src": "2184:4:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "id": 50605, "nodeType": "VariableDeclaration", "src": "2215:48:65", "nodes": [], "constant": true, "mutability": "constant", "name": "imax", "nameLocation": "2241:4:65", "scope": 50823, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 50598, "name": "int256", "nodeType": "ElementaryTypeName", "src": "2215:6:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50603, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "id": 50601, "name": "umax", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50597, "src": "2255:4:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">>", "rightExpression": { "hexValue": "31", "id": 50602, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2261:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "2255:7:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 50600, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2248:6:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": { "id": 50599, "name": "int256", "nodeType": "ElementaryTypeName", "src": "2248:6:65", "typeDescriptions": {} } }, "id": 50604, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2248:15:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "id": 50609, "nodeType": "VariableDeclaration", "src": "2280:38:65", "nodes": [], "constant": true, "mutability": "constant", "name": "imin", "nameLocation": "2306:4:65", "scope": 50823, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 50606, "name": "int256", "nodeType": "ElementaryTypeName", "src": "2280:6:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": { "id": 50608, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "~", "prefix": true, "src": "2313:5:65", "subExpression": { "id": 50607, "name": "imax", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50605, "src": "2314:4:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "id": 50673, "nodeType": "FunctionDefinition", "src": "2408:446:65", "nodes": [], "body": { "id": 50672, "nodeType": "Block", "src": "2455:399:65", "nodes": [], "statements": [ { "expression": { "arguments": [ { "hexValue": "73616e69747952657665727473", "id": 50617, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2478:15:65", "typeDescriptions": { "typeIdentifier": "t_stringliteral_fafd0e5a2c531a9d45dd7dee00e91efbb51a89d15a0ffa4b23e283a9bc2d768d", "typeString": "literal_string \"sanityReverts\"" }, "value": "sanityReverts" }, { "id": 50618, "name": "t", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50611, "src": "2495:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_fafd0e5a2c531a9d45dd7dee00e91efbb51a89d15a0ffa4b23e283a9bc2d768d", "typeString": "literal_string \"sanityReverts\"" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "expression": { "id": 50614, "name": "console2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 29653, "src": "2465:8:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_console2_$29653_$", "typeString": "type(library console2)" } }, "id": 50616, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2474:3:65", "memberName": "log", "nodeType": "MemberAccess", "referencedDeclaration": 22297, "src": "2465:12:65", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_int256_$returns$__$", "typeString": "function (string memory,int256) pure" } }, "id": 50619, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2465:32:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50620, "nodeType": "ExpressionStatement", "src": "2465:32:65" }, { "assignments": [ 50622 ], "declarations": [ { "constant": false, "id": 50622, "mutability": "mutable", "name": "u", "nameLocation": "2515:1:65", "nodeType": "VariableDeclaration", "scope": 50672, "src": "2507:9:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 50621, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2507:7:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 50623, "nodeType": "VariableDeclarationStatement", "src": "2507:9:65" }, { "assignments": [ 50625 ], "declarations": [ { "constant": false, "id": 50625, "mutability": "mutable", "name": "i", "nameLocation": "2533:1:65", "nodeType": "VariableDeclaration", "scope": 50672, "src": "2526:8:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 50624, "name": "int256", "nodeType": "ElementaryTypeName", "src": "2526:6:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" } ], "id": 50626, "nodeType": "VariableDeclarationStatement", "src": "2526:8:65" }, { "condition": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50629, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50627, "name": "t", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50611, "src": "2548:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "31", "id": 50628, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2553:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "2548:6:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50639, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50637, "name": "t", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50611, "src": "2613:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "32", "id": 50638, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2618:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "src": "2613:6:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50649, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50647, "name": "t", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50611, "src": "2679:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "33", "id": 50648, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2684:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" }, "value": "3" }, "src": "2679:6:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50659, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50657, "name": "t", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50611, "src": "2744:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "34", "id": 50658, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2749:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, "src": "2744:6:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 50667, "nodeType": "Block", "src": "2806:42:65", "statements": [] }, "id": 50668, "nodeType": "IfStatement", "src": "2740:108:65", "trueBody": { "id": 50666, "nodeType": "Block", "src": "2752:48:65", "statements": [ { "expression": { "id": 50664, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50660, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50625, "src": "2766:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50663, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "id": 50661, "name": "imin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50609, "src": "2770:4:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "hexValue": "31", "id": 50662, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2775:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "2770:6:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "2766:10:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 50665, "nodeType": "ExpressionStatement", "src": "2766:10:65" } ] } }, "id": 50669, "nodeType": "IfStatement", "src": "2675:173:65", "trueBody": { "id": 50656, "nodeType": "Block", "src": "2687:47:65", "statements": [ { "expression": { "id": 50654, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50650, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50625, "src": "2701:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50653, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "id": 50651, "name": "imax", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50605, "src": "2705:4:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "hexValue": "31", "id": 50652, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2710:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "2705:6:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "2701:10:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 50655, "nodeType": "ExpressionStatement", "src": "2701:10:65" } ] } }, "id": 50670, "nodeType": "IfStatement", "src": "2609:239:65", "trueBody": { "id": 50646, "nodeType": "Block", "src": "2621:48:65", "statements": [ { "expression": { "id": 50644, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50640, "name": "u", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50622, "src": "2635:1:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50643, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "id": 50641, "name": "umin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50593, "src": "2639:4:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "hexValue": "31", "id": 50642, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2644:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "2639:6:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2635:10:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50645, "nodeType": "ExpressionStatement", "src": "2635:10:65" } ] } }, "id": 50671, "nodeType": "IfStatement", "src": "2544:304:65", "trueBody": { "id": 50636, "nodeType": "Block", "src": "2556:47:65", "statements": [ { "expression": { "id": 50634, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50630, "name": "u", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50622, "src": "2570:1:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50633, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "id": 50631, "name": "umax", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50597, "src": "2574:4:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "hexValue": "31", "id": 50632, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2579:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "2574:6:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2570:10:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50635, "nodeType": "ExpressionStatement", "src": "2570:10:65" } ] } } ] }, "functionSelector": "df96063b", "implemented": true, "kind": "function", "modifiers": [], "name": "sanityReverts", "nameLocation": "2417:13:65", "parameters": { "id": 50612, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 50611, "mutability": "mutable", "name": "t", "nameLocation": "2438:1:65", "nodeType": "VariableDeclaration", "scope": 50673, "src": "2431:8:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 50610, "name": "int256", "nodeType": "ElementaryTypeName", "src": "2431:6:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" } ], "src": "2430:10:65" }, "returnParameters": { "id": 50613, "nodeType": "ParameterList", "parameters": [], "src": "2455:0:65" }, "scope": 50823, "stateMutability": "pure", "virtual": false, "visibility": "external" }, { "id": 50721, "nodeType": "FunctionDefinition", "src": "2860:390:65", "nodes": [], "body": { "id": 50720, "nodeType": "Block", "src": "2891:359:65", "nodes": [], "statements": [ { "expression": { "arguments": [ { "hexValue": "466c6f61742e7465737453616e6974792829", "id": 50679, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2914:20:65", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c8443029829768cd1770dc2373588bc0152e6177e06d9f45b1a1468c40d676b0", "typeString": "literal_string \"Float.testSanity()\"" }, "value": "Float.testSanity()" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_c8443029829768cd1770dc2373588bc0152e6177e06d9f45b1a1468c40d676b0", "typeString": "literal_string \"Float.testSanity()\"" } ], "expression": { "id": 50676, "name": "console2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 29653, "src": "2901:8:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_console2_$29653_$", "typeString": "type(library console2)" } }, "id": 50678, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2910:3:65", "memberName": "log", "nodeType": "MemberAccess", "referencedDeclaration": 22167, "src": "2901:12:65", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 50680, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2901:34:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50681, "nodeType": "ExpressionStatement", "src": "2901:34:65" }, { "assignments": [ 50683 ], "declarations": [ { "constant": false, "id": 50683, "mutability": "mutable", "name": "i", "nameLocation": "2952:1:65", "nodeType": "VariableDeclaration", "scope": 50720, "src": "2945:8:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 50682, "name": "int256", "nodeType": "ElementaryTypeName", "src": "2945:6:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" } ], "id": 50684, "nodeType": "VariableDeclarationStatement", "src": "2945:8:65" }, { "body": { "id": 50706, "nodeType": "Block", "src": "2984:112:65", "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 50695, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2350, "src": "2998:2:65", "typeDescriptions": { "typeIdentifier": "t_contract$_Vm_$13464", "typeString": "contract Vm" } }, "id": 50697, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3001:12:65", "memberName": "expectRevert", "nodeType": "MemberAccess", "referencedDeclaration": 13126, "src": "2998:15:65", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", "typeString": "function () external" } }, "id": 50698, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2998:17:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50699, "nodeType": "ExpressionStatement", "src": "2998:17:65" }, { "expression": { "arguments": [ { "id": 50703, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50683, "src": "3048:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" } ], "expression": { "id": 50700, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "3029:4:65", "typeDescriptions": { "typeIdentifier": "t_contract$_TestIEEE754_$50823", "typeString": "contract TestIEEE754" } }, "id": 50702, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3034:13:65", "memberName": "sanityReverts", "nodeType": "MemberAccess", "referencedDeclaration": 50673, "src": "3029:18:65", "typeDescriptions": { "typeIdentifier": "t_function_external_pure$_t_int256_$returns$__$", "typeString": "function (int256) pure external" } }, "id": 50704, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3029:21:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50705, "nodeType": "ExpressionStatement", "src": "3029:21:65" } ] }, "condition": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50691, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50689, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50683, "src": "2973:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "hexValue": "34", "id": 50690, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2976:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, "src": "2973:4:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 50707, "initializationExpression": { "expression": { "id": 50687, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50685, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50683, "src": "2968:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "31", "id": 50686, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2970:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "2968:3:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 50688, "nodeType": "ExpressionStatement", "src": "2968:3:65" }, "isSimpleCounterLoop": false, "loopExpression": { "expression": { "id": 50693, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "2979:3:65", "subExpression": { "id": 50692, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50683, "src": "2979:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 50694, "nodeType": "ExpressionStatement", "src": "2979:3:65" }, "nodeType": "ForStatement", "src": "2963:133:65" }, { "expression": { "id": 50712, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50708, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50683, "src": "3105:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50711, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "id": 50709, "name": "imax", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50605, "src": "3109:4:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "hexValue": "31", "id": 50710, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3117:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "3109:9:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3105:13:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 50713, "nodeType": "ExpressionStatement", "src": "3105:13:65" }, { "expression": { "id": 50718, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50714, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50683, "src": "3179:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50717, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "id": 50715, "name": "imin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50609, "src": "3183:4:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "hexValue": "31", "id": 50716, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3191:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "3183:9:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3179:13:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 50719, "nodeType": "ExpressionStatement", "src": "3179:13:65" } ] }, "functionSelector": "c21e06ec", "implemented": true, "kind": "function", "modifiers": [], "name": "testSanity", "nameLocation": "2869:10:65", "parameters": { "id": 50674, "nodeType": "ParameterList", "parameters": [], "src": "2879:2:65" }, "returnParameters": { "id": 50675, "nodeType": "ParameterList", "parameters": [], "src": "2891:0:65" }, "scope": 50823, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "id": 50728, "nodeType": "StructDefinition", "src": "3256:102:65", "nodes": [], "canonicalName": "TestIEEE754.Item", "members": [ { "constant": false, "id": 50723, "mutability": "mutable", "name": "floatingPoint", "nameLocation": "3285:13:65", "nodeType": "VariableDeclaration", "scope": 50728, "src": "3278:20:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 50722, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "3278:6:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 50725, "mutability": "mutable", "name": "fixedBits", "nameLocation": "3315:9:65", "nodeType": "VariableDeclaration", "scope": 50728, "src": "3308:16:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 50724, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "3308:6:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 50727, "mutability": "mutable", "name": "fixedPoint", "nameLocation": "3341:10:65", "nodeType": "VariableDeclaration", "scope": 50728, "src": "3334:17:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 50726, "name": "int256", "nodeType": "ElementaryTypeName", "src": "3334:6:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" } ], "name": "Item", "nameLocation": "3263:4:65", "scope": 50823, "visibility": "public" }, { "id": 50822, "nodeType": "FunctionDefinition", "src": "3364:761:65", "nodes": [], "body": { "id": 50821, "nodeType": "Block", "src": "3405:720:65", "nodes": [], "statements": [ { "expression": { "arguments": [ { "hexValue": "54657374494545453735342e74657374466c6f61743266697865642829", "id": 50734, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3428:31:65", "typeDescriptions": { "typeIdentifier": "t_stringliteral_1f700677d7976407cf28fad97487e1fb3aa6fed30a542fb2a2c397aa2ed4983a", "typeString": "literal_string \"TestIEEE754.testFloat2fixed()\"" }, "value": "TestIEEE754.testFloat2fixed()" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_1f700677d7976407cf28fad97487e1fb3aa6fed30a542fb2a2c397aa2ed4983a", "typeString": "literal_string \"TestIEEE754.testFloat2fixed()\"" } ], "expression": { "id": 50731, "name": "console2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 29653, "src": "3415:8:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_console2_$29653_$", "typeString": "type(library console2)" } }, "id": 50733, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3424:3:65", "memberName": "log", "nodeType": "MemberAccess", "referencedDeclaration": 22167, "src": "3415:12:65", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 50735, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3415:45:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50736, "nodeType": "ExpressionStatement", "src": "3415:45:65" }, { "assignments": [ 50742 ], "declarations": [ { "constant": false, "id": 50742, "mutability": "mutable", "name": "items", "nameLocation": "3486:5:65", "nodeType": "VariableDeclaration", "scope": 50821, "src": "3471:20:65", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Item_$50728_memory_ptr_$6_memory_ptr", "typeString": "struct TestIEEE754.Item[6]" }, "typeName": { "baseType": { "id": 50740, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 50739, "name": "Item", "nameLocations": [ "3471:4:65" ], "nodeType": "IdentifierPath", "referencedDeclaration": 50728, "src": "3471:4:65" }, "referencedDeclaration": 50728, "src": "3471:4:65", "typeDescriptions": { "typeIdentifier": "t_struct$_Item_$50728_storage_ptr", "typeString": "struct TestIEEE754.Item" } }, "id": 50741, "length": { "hexValue": "36", "id": 50738, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3476:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", "typeString": "int_const 6" }, "value": "6" }, "nodeType": "ArrayTypeName", "src": "3471:7:65", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Item_$50728_storage_$6_storage_ptr", "typeString": "struct TestIEEE754.Item[6]" } }, "visibility": "internal" } ], "id": 50788, "initialValue": { "components": [ { "arguments": [ { "hexValue": "30783366383030303030", "id": 50744, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3513:10:65", "typeDescriptions": { "typeIdentifier": "t_rational_1065353216_by_1", "typeString": "int_const 1065353216" }, "value": "0x3f800000" }, { "hexValue": "30", "id": 50745, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3525:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, { "commonType": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "id": 50748, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "31", "id": 50746, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3528:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "hexValue": "30", "id": 50747, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3533:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3528:6:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_1065353216_by_1", "typeString": "int_const 1065353216" }, { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" } ], "id": 50743, "name": "Item", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50728, "src": "3508:4:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Item_$50728_storage_ptr_$", "typeString": "type(struct TestIEEE754.Item storage pointer)" } }, "id": 50749, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3508:27:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Item_$50728_memory_ptr", "typeString": "struct TestIEEE754.Item memory" } }, { "arguments": [ { "hexValue": "30783366383030303030", "id": 50751, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3566:10:65", "typeDescriptions": { "typeIdentifier": "t_rational_1065353216_by_1", "typeString": "int_const 1065353216" }, "value": "0x3f800000" }, { "hexValue": "313238", "id": 50752, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3578:3:65", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, { "commonType": { "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", "typeString": "int_const 3402...(31 digits omitted)...1456" }, "id": 50755, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "31", "id": 50753, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3583:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "hexValue": "313238", "id": 50754, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3588:3:65", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, "src": "3583:8:65", "typeDescriptions": { "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", "typeString": "int_const 3402...(31 digits omitted)...1456" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_1065353216_by_1", "typeString": "int_const 1065353216" }, { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, { "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", "typeString": "int_const 3402...(31 digits omitted)...1456" } ], "id": 50750, "name": "Item", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50728, "src": "3561:4:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Item_$50728_storage_ptr_$", "typeString": "type(struct TestIEEE754.Item storage pointer)" } }, "id": 50756, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3561:31:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Item_$50728_memory_ptr", "typeString": "struct TestIEEE754.Item memory" } }, { "arguments": [ { "hexValue": "30783366383030303030", "id": 50758, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3619:10:65", "typeDescriptions": { "typeIdentifier": "t_rational_1065353216_by_1", "typeString": "int_const 1065353216" }, "value": "0x3f800000" }, { "hexValue": "323534", "id": 50759, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3631:3:65", "typeDescriptions": { "typeIdentifier": "t_rational_254_by_1", "typeString": "int_const 254" }, "value": "254" }, { "commonType": { "typeIdentifier": "t_rational_28948022309329048855892746252171976963317496166410141009864396001978282409984_by_1", "typeString": "int_const 2894...(69 digits omitted)...9984" }, "id": 50762, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "31", "id": 50760, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3636:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "hexValue": "323534", "id": 50761, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3641:3:65", "typeDescriptions": { "typeIdentifier": "t_rational_254_by_1", "typeString": "int_const 254" }, "value": "254" }, "src": "3636:8:65", "typeDescriptions": { "typeIdentifier": "t_rational_28948022309329048855892746252171976963317496166410141009864396001978282409984_by_1", "typeString": "int_const 2894...(69 digits omitted)...9984" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_1065353216_by_1", "typeString": "int_const 1065353216" }, { "typeIdentifier": "t_rational_254_by_1", "typeString": "int_const 254" }, { "typeIdentifier": "t_rational_28948022309329048855892746252171976963317496166410141009864396001978282409984_by_1", "typeString": "int_const 2894...(69 digits omitted)...9984" } ], "id": 50757, "name": "Item", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50728, "src": "3614:4:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Item_$50728_storage_ptr_$", "typeString": "type(struct TestIEEE754.Item storage pointer)" } }, "id": 50763, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3614:31:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Item_$50728_memory_ptr", "typeString": "struct TestIEEE754.Item memory" } }, { "arguments": [ { "hexValue": "30786266383030303030", "id": 50765, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3672:10:65", "typeDescriptions": { "typeIdentifier": "t_rational_3212836864_by_1", "typeString": "int_const 3212836864" }, "value": "0xbf800000" }, { "hexValue": "313238", "id": 50766, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3684:3:65", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, { "commonType": { "typeIdentifier": "t_rational_minus_340282366920938463463374607431768211456_by_1", "typeString": "int_const -340...(32 digits omitted)...1456" }, "id": 50770, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "id": 50768, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "-", "prefix": true, "src": "3689:2:65", "subExpression": { "hexValue": "31", "id": 50767, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3690:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "typeDescriptions": { "typeIdentifier": "t_rational_minus_1_by_1", "typeString": "int_const -1" } }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "hexValue": "313238", "id": 50769, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3695:3:65", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, "src": "3689:9:65", "typeDescriptions": { "typeIdentifier": "t_rational_minus_340282366920938463463374607431768211456_by_1", "typeString": "int_const -340...(32 digits omitted)...1456" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_3212836864_by_1", "typeString": "int_const 3212836864" }, { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, { "typeIdentifier": "t_rational_minus_340282366920938463463374607431768211456_by_1", "typeString": "int_const -340...(32 digits omitted)...1456" } ], "id": 50764, "name": "Item", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50728, "src": "3667:4:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Item_$50728_storage_ptr_$", "typeString": "type(struct TestIEEE754.Item storage pointer)" } }, "id": 50771, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3667:32:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Item_$50728_memory_ptr", "typeString": "struct TestIEEE754.Item memory" } }, { "arguments": [ { "hexValue": "30783430303030303030", "id": 50773, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3726:10:65", "typeDescriptions": { "typeIdentifier": "t_rational_1073741824_by_1", "typeString": "int_const 1073741824" }, "value": "0x40000000" }, { "hexValue": "313238", "id": 50774, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3738:3:65", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, { "commonType": { "typeIdentifier": "t_rational_680564733841876926926749214863536422912_by_1", "typeString": "int_const 6805...(31 digits omitted)...2912" }, "id": 50777, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "32", "id": 50775, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3743:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "hexValue": "313238", "id": 50776, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3748:3:65", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, "src": "3743:8:65", "typeDescriptions": { "typeIdentifier": "t_rational_680564733841876926926749214863536422912_by_1", "typeString": "int_const 6805...(31 digits omitted)...2912" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_1073741824_by_1", "typeString": "int_const 1073741824" }, { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, { "typeIdentifier": "t_rational_680564733841876926926749214863536422912_by_1", "typeString": "int_const 6805...(31 digits omitted)...2912" } ], "id": 50772, "name": "Item", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50728, "src": "3721:4:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Item_$50728_storage_ptr_$", "typeString": "type(struct TestIEEE754.Item storage pointer)" } }, "id": 50778, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3721:31:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Item_$50728_memory_ptr", "typeString": "struct TestIEEE754.Item memory" } }, { "arguments": [ { "hexValue": "30786330303030303030", "id": 50780, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3779:10:65", "typeDescriptions": { "typeIdentifier": "t_rational_3221225472_by_1", "typeString": "int_const 3221225472" }, "value": "0xc0000000" }, { "hexValue": "313238", "id": 50781, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3791:3:65", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, { "commonType": { "typeIdentifier": "t_rational_minus_680564733841876926926749214863536422912_by_1", "typeString": "int_const -680...(32 digits omitted)...2912" }, "id": 50785, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "id": 50783, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "-", "prefix": true, "src": "3796:2:65", "subExpression": { "hexValue": "32", "id": 50782, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3797:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "typeDescriptions": { "typeIdentifier": "t_rational_minus_2_by_1", "typeString": "int_const -2" } }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "hexValue": "313238", "id": 50784, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3802:3:65", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, "src": "3796:9:65", "typeDescriptions": { "typeIdentifier": "t_rational_minus_680564733841876926926749214863536422912_by_1", "typeString": "int_const -680...(32 digits omitted)...2912" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_3221225472_by_1", "typeString": "int_const 3221225472" }, { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, { "typeIdentifier": "t_rational_minus_680564733841876926926749214863536422912_by_1", "typeString": "int_const -680...(32 digits omitted)...2912" } ], "id": 50779, "name": "Item", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50728, "src": "3774:4:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Item_$50728_storage_ptr_$", "typeString": "type(struct TestIEEE754.Item storage pointer)" } }, "id": 50786, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3774:32:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Item_$50728_memory_ptr", "typeString": "struct TestIEEE754.Item memory" } } ], "id": 50787, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", "src": "3494:423:65", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Item_$50728_memory_ptr_$6_memory_ptr", "typeString": "struct TestIEEE754.Item memory[6] memory" } }, "nodeType": "VariableDeclarationStatement", "src": "3471:446:65" }, { "body": { "id": 50819, "nodeType": "Block", "src": "3964:154:65", "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50816, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "baseExpression": { "id": 50801, "name": "items", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50742, "src": "3986:5:65", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Item_$50728_memory_ptr_$6_memory_ptr", "typeString": "struct TestIEEE754.Item memory[6] memory" } }, "id": 50803, "indexExpression": { "id": 50802, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50790, "src": "3992:1:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3986:8:65", "typeDescriptions": { "typeIdentifier": "t_struct$_Item_$50728_memory_ptr", "typeString": "struct TestIEEE754.Item memory" } }, "id": 50804, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "3995:10:65", "memberName": "fixedPoint", "nodeType": "MemberAccess", "referencedDeclaration": 50727, "src": "3986:19:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [ { "expression": { "baseExpression": { "id": 50807, "name": "items", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50742, "src": "4046:5:65", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Item_$50728_memory_ptr_$6_memory_ptr", "typeString": "struct TestIEEE754.Item memory[6] memory" } }, "id": 50809, "indexExpression": { "id": 50808, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50790, "src": "4052:1:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4046:8:65", "typeDescriptions": { "typeIdentifier": "t_struct$_Item_$50728_memory_ptr", "typeString": "struct TestIEEE754.Item memory" } }, "id": 50810, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "4055:13:65", "memberName": "floatingPoint", "nodeType": "MemberAccess", "referencedDeclaration": 50723, "src": "4046:22:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "expression": { "baseExpression": { "id": 50811, "name": "items", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50742, "src": "4070:5:65", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Item_$50728_memory_ptr_$6_memory_ptr", "typeString": "struct TestIEEE754.Item memory[6] memory" } }, "id": 50813, "indexExpression": { "id": 50812, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50790, "src": "4076:1:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4070:8:65", "typeDescriptions": { "typeIdentifier": "t_struct$_Item_$50728_memory_ptr", "typeString": "struct TestIEEE754.Item memory" } }, "id": 50814, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "4079:9:65", "memberName": "fixedBits", "nodeType": "MemberAccess", "referencedDeclaration": 50725, "src": "4070:18:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" } ], "expression": { "id": 50805, "name": "IEEE754", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50578, "src": "4009:7:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IEEE754_$50578_$", "typeString": "type(library IEEE754)" } }, "id": 50806, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "4017:11:65", "memberName": "float2fixed", "nodeType": "MemberAccess", "referencedDeclaration": 50577, "src": "4009:19:65", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_int256_$", "typeString": "function (uint32,uint32) pure returns (int256)" } }, "id": 50815, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4009:97:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3986:120:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 50800, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "3978:7:65", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 50817, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3978:129:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50818, "nodeType": "ExpressionStatement", "src": "3978:129:65" } ] }, "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50796, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50793, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50790, "src": "3943:1:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "expression": { "id": 50794, "name": "items", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50742, "src": "3945:5:65", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Item_$50728_memory_ptr_$6_memory_ptr", "typeString": "struct TestIEEE754.Item memory[6] memory" } }, "id": 50795, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3951:6:65", "memberName": "length", "nodeType": "MemberAccess", "src": "3945:12:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3943:14:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 50820, "initializationExpression": { "assignments": [ 50790 ], "declarations": [ { "constant": false, "id": 50790, "mutability": "mutable", "name": "i", "nameLocation": "3938:1:65", "nodeType": "VariableDeclaration", "scope": 50820, "src": "3933:6:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 50789, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3933:4:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 50792, "initialValue": { "hexValue": "30", "id": 50791, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3940:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "3933:8:65" }, "isSimpleCounterLoop": true, "loopExpression": { "expression": { "id": 50798, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "3959:3:65", "subExpression": { "id": 50797, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50790, "src": "3959:1:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50799, "nodeType": "ExpressionStatement", "src": "3959:3:65" }, "nodeType": "ForStatement", "src": "3928:190:65" } ] }, "functionSelector": "b1a3670e", "implemented": true, "kind": "function", "modifiers": [], "name": "testFloat2fixed", "nameLocation": "3373:15:65", "parameters": { "id": 50729, "nodeType": "ParameterList", "parameters": [], "src": "3388:2:65" }, "returnParameters": { "id": 50730, "nodeType": "ParameterList", "parameters": [], "src": "3405:0:65" }, "scope": 50823, "stateMutability": "pure", "virtual": false, "visibility": "external" } ], "abstract": false, "baseContracts": [ { "baseName": { "id": 50579, "name": "Test", "nameLocations": [ "1986:4:65" ], "nodeType": "IdentifierPath", "referencedDeclaration": 11937, "src": "1986:4:65" }, "id": 50580, "nodeType": "InheritanceSpecifier", "src": "1986:4:65" } ], "canonicalName": "TestIEEE754", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "internalFunctionIDs": { "21582": 1 }, "linearizedBaseContracts": [ 50823, 11937, 2357, 2354, 11886, 7624, 7334, 6570, 4516, 3823, 2291 ], "name": "TestIEEE754", "nameLocation": "1971:11:65", "scope": 50824, "usedErrors": [], "usedEvents": [ 5, 9, 13, 17, 21, 25, 29, 33, 39, 45, 53, 61, 67, 73, 79, 85, 2418, 2423, 2428, 2435, 2442, 2449 ] } ], "license": "UNLICENSED" }, "id": 65 }