Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 30 additions & 30 deletions .gas-snapshot
Original file line number Diff line number Diff line change
@@ -1,31 +1,30 @@
DecimalFloatAbsTest:testAbsDeployed(bytes32) (runs: 5096, μ: 2425711, ~: 2425653)
DecimalFloatAddTest:testAddDeployed(bytes32,bytes32) (runs: 5096, μ: 2428475, ~: 2428157)
DecimalFloatConstantsTest:testEDeployed() (gas: 2424851)
DecimalFloatConstantsTest:testMaxValueDeployed() (gas: 2424885)
DecimalFloatConstantsTest:testMinNegativeValueDeployed() (gas: 2424883)
DecimalFloatDivTest:testDivDeployed(bytes32,bytes32) (runs: 5096, μ: 2428214, ~: 2428066)
DecimalFloatEqTest:testEqDeployed(bytes32,bytes32) (runs: 5096, μ: 2426116, ~: 2426043)
DecimalFloatFloorTest:testFloorDeployed(bytes32) (runs: 5096, μ: 2425915, ~: 2425898)
DecimalFloatFormatTest:testFormatDeployed(bytes32) (runs: 5096, μ: 2429752, ~: 2429579)
DecimalFloatFracTest:testFracDeployed(bytes32) (runs: 5096, μ: 2425963, ~: 2425946)
DecimalFloatFromFixedDecimalLosslessTest:testFromFixedDecimalLosslessDeployed(uint256,uint8) (runs: 5096, μ: 2426516, ~: 2426450)
DecimalFloatFromFixedDecimalLossyTest:testFromFixedDecimalLossyDeployed(uint256,uint8) (runs: 5096, μ: 2427004, ~: 2426920)
DecimalFloatGtTest:testGtDeployed(bytes32,bytes32) (runs: 5096, μ: 2426036, ~: 2425963)
DecimalFloatGteTest:testGteDeployed(bytes32,bytes32) (runs: 5096, μ: 2426109, ~: 2426036)
DecimalFloatInvTest:testInvDeployed(bytes32) (runs: 5096, μ: 2427304, ~: 2427226)
DecimalFloatIsZeroTest:testIsZeroDeployed(bytes32) (runs: 5096, μ: 2425228, ~: 2425228)
DecimalFloatLtTest:testLtDeployed(bytes32,bytes32) (runs: 5096, μ: 2426014, ~: 2425940)
DecimalFloatLteTest:testLteDeployed(bytes32,bytes32) (runs: 5096, μ: 2426067, ~: 2425993)
DecimalFloatMaxTest:testMaxDeployed(bytes32,bytes32) (runs: 5096, μ: 2426098, ~: 2426037)
DecimalFloatMinTest:testMinDeployed(bytes32,bytes32) (runs: 5096, μ: 2426096, ~: 2426035)
DecimalFloatMinusTest:testMinusDeployed(bytes32) (runs: 5096, μ: 2425788, ~: 2425788)
DecimalFloatMulTest:testMulDeployed(bytes32,bytes32) (runs: 5096, μ: 2427932, ~: 2428993)
DecimalFloatPackLosslessTest:testPackDeployed(int224,int32) (runs: 5096, μ: 2426066, ~: 2426066)
DecimalFloatParseTest:testParseDeployed(string) (runs: 5096, μ: 2428465, ~: 2428334)
DecimalFloatSubTest:testSubDeployed(bytes32,bytes32) (runs: 5096, μ: 2428809, ~: 2428495)
DecimalFloatToFixedDecimalLosslessTest:testToFixedDecimalLosslessDeployed(bytes32,uint8) (runs: 5096, μ: 2427141, ~: 2427033)
DecimalFloatToFixedDecimalLossyTest:testToFixedDecimalLossyDeployed(bytes32,uint8) (runs: 5096, μ: 2427285, ~: 2427562)
DecimalFloatUnpackTest:testUnpackDeployed(bytes32) (runs: 5096, μ: 2425741, ~: 2425741)
DecimalFloatAbsTest:testAbsDeployed(bytes32) (runs: 5096, μ: 2384006, ~: 2383948)
DecimalFloatAddTest:testAddDeployed(bytes32,bytes32) (runs: 5096, μ: 2386769, ~: 2386452)
DecimalFloatConstantsTest:testEDeployed() (gas: 2383146)
DecimalFloatConstantsTest:testMaxValueDeployed() (gas: 2383113)
DecimalFloatConstantsTest:testMinNegativeValueDeployed() (gas: 2383178)
DecimalFloatDivTest:testDivDeployed(bytes32,bytes32) (runs: 5096, μ: 2386503, ~: 2386350)
DecimalFloatEqTest:testEqDeployed(bytes32,bytes32) (runs: 5096, μ: 2384412, ~: 2384338)
DecimalFloatFloorTest:testFloorDeployed(bytes32) (runs: 5096, μ: 2384231, ~: 2384215)
DecimalFloatFormatTest:testFormatDeployed(bytes32) (runs: 5096, μ: 2388071, ~: 2387896)
DecimalFloatFracTest:testFracDeployed(bytes32) (runs: 5096, μ: 2384257, ~: 2384241)
DecimalFloatFromFixedDecimalLosslessTest:testFromFixedDecimalLosslessDeployed(uint256,uint8) (runs: 5096, μ: 2384813, ~: 2384745)
DecimalFloatFromFixedDecimalLossyTest:testFromFixedDecimalLossyDeployed(uint256,uint8) (runs: 5096, μ: 2385300, ~: 2385215)
DecimalFloatGtTest:testGtDeployed(bytes32,bytes32) (runs: 5096, μ: 2384332, ~: 2384258)
DecimalFloatGteTest:testGteDeployed(bytes32,bytes32) (runs: 5096, μ: 2384405, ~: 2384331)
DecimalFloatInvTest:testInvDeployed(bytes32) (runs: 5096, μ: 2385601, ~: 2385521)
DecimalFloatIsZeroTest:testIsZeroDeployed(bytes32) (runs: 5096, μ: 2383523, ~: 2383523)
DecimalFloatLtTest:testLtDeployed(bytes32,bytes32) (runs: 5096, μ: 2384309, ~: 2384235)
DecimalFloatLteTest:testLteDeployed(bytes32,bytes32) (runs: 5096, μ: 2384362, ~: 2384288)
DecimalFloatMaxTest:testMaxDeployed(bytes32,bytes32) (runs: 5096, μ: 2384393, ~: 2384332)
DecimalFloatMinTest:testMinDeployed(bytes32,bytes32) (runs: 5096, μ: 2384413, ~: 2384352)
DecimalFloatMinusTest:testMinusDeployed(bytes32) (runs: 5096, μ: 2384083, ~: 2384083)
DecimalFloatMulTest:testMulDeployed(bytes32,bytes32) (runs: 5096, μ: 2386245, ~: 2387310)
DecimalFloatPackLosslessTest:testPackDeployed(int224,int32) (runs: 5096, μ: 158769, ~: 158769)
DecimalFloatParseTest:testParseDeployed(string) (runs: 5096, μ: 2386760, ~: 2386629)
DecimalFloatSubTest:testSubDeployed(bytes32,bytes32) (runs: 5096, μ: 2387033, ~: 2386723)
DecimalFloatToFixedDecimalLosslessTest:testToFixedDecimalLosslessDeployed(bytes32,uint8) (runs: 5096, μ: 2385459, ~: 2385350)
DecimalFloatToFixedDecimalLossyTest:testToFixedDecimalLossyDeployed(bytes32,uint8) (runs: 5096, μ: 2385576, ~: 2385857)
LibDecimalFloatAbsTest:testAbsMinValue(int32) (runs: 5096, μ: 5121, ~: 5121)
LibDecimalFloatAbsTest:testAbsNegative(int256,int32) (runs: 5096, μ: 10475, ~: 10702)
LibDecimalFloatAbsTest:testAbsNonNegative(int256,int32) (runs: 5096, μ: 9641, ~: 9392)
Expand Down Expand Up @@ -229,7 +228,7 @@ LibDecimalFloatMinusTest:testMinusPacked(bytes32) (runs: 5096, μ: 5550, ~: 5550
LibDecimalFloatMixedTest:testDiv1Over3() (gas: 8161)
LibDecimalFloatMulTest:testMulPacked(bytes32,bytes32) (runs: 5096, μ: 7890, ~: 8837)
LibDecimalFloatPackTest:testPartsRoundTrip(int224,int32) (runs: 5096, μ: 5352, ~: 5352)
LibDecimalFloatPow10Test:testPow10Packed(bytes32) (runs: 5096, μ: 1644510, ~: 1257918)
LibDecimalFloatPow10Test:testPow10Packed(bytes32) (runs: 5096, μ: 1644509, ~: 1257918)
LibDecimalFloatPowTest:testPows() (gas: 1296748)
LibDecimalFloatPowTest:testRoundTripFuzz(bytes32,bytes32) (runs: 5096, μ: 1256890, ~: 1253536)
LibDecimalFloatPowTest:testRoundTripSimple() (gas: 1450883)
Expand Down Expand Up @@ -266,4 +265,5 @@ LibParseDecimalFloatTest:testParseLiteralDecimalFloatPrecisionRevert0() (gas: 27
LibParseDecimalFloatTest:testParseLiteralDecimalFloatPrecisionRevert1() (gas: 24801)
LibParseDecimalFloatTest:testParseLiteralDecimalFloatSpecific() (gas: 22959)
LibParseDecimalFloatTest:testParseLiteralDecimalFloatUnrelated() (gas: 50856)
LibParseDecimalFloatTest:testParsePacked(string) (runs: 5096, μ: 9787, ~: 9668)
LibParseDecimalFloatTest:testParsePacked(string) (runs: 5096, μ: 9787, ~: 9668)
TestDecimalFloatUnpackTest:testUnpackDeployed(bytes32) (runs: 5096, μ: 158422, ~: 158422)
7 changes: 3 additions & 4 deletions src/concrete/DecimalFloat.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
pragma solidity =0.8.25;

import {LibDecimalFloat, Float} from "../lib/LibDecimalFloat.sol";
import {LOG_TABLES_ADDRESS} from "../lib/deploy/LibDecimalFloatDeploy.sol";
import {LibFormatDecimalFloat} from "../lib/format/LibFormatDecimalFloat.sol";
import {LibParseDecimalFloat} from "../lib/parse/LibParseDecimalFloat.sol";

Expand Down Expand Up @@ -159,22 +158,22 @@ contract DecimalFloat {
/// @param a The float to raise to the power of 10.
/// @return The result of raising the float to the power of 10.
function pow10(Float a) external view returns (Float) {
return a.pow10(LOG_TABLES_ADDRESS);
return a.pow10(LibDecimalFloat.LOG_TABLES_ADDRESS);
}

/// Exposes `LibDecimalFloat.log10` for offchain use.
/// @param a The float to take the logarithm of.
/// @return The logarithm of the float.
function log10(Float a) external view returns (Float) {
return a.log10(LOG_TABLES_ADDRESS);
return a.log10(LibDecimalFloat.LOG_TABLES_ADDRESS);
}

/// Exposes `LibDecimalFloat.pow` for offchain use.
/// @param a The base float.
/// @param b The exponent float.
/// @return The result of raising the base float to the power of the exponent
function pow(Float a, Float b) external view returns (Float) {
return a.pow(b, LOG_TABLES_ADDRESS);
return a.pow(b, LibDecimalFloat.LOG_TABLES_ADDRESS);
}

/// Exposes `LibDecimalFloat.min` for offchain use.
Expand Down
2 changes: 2 additions & 0 deletions src/lib/LibDecimalFloat.sol
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,8 @@ int256 constant EXPONENT_LEAP_MULTIPLIER = int256(uint256(10 ** uint256(EXPONENT
library LibDecimalFloat {
using LibDecimalFloat for Float;

address constant LOG_TABLES_ADDRESS = 0x295180b25A5059a2e7eC64272ba4F85047B4146A;

/// type(int224).max, type(int32).max
Float constant FLOAT_MAX_VALUE =
Float.wrap(bytes32(uint256(0x7fffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffff)));
Expand Down
2 changes: 0 additions & 2 deletions src/lib/deploy/LibDecimalFloatDeploy.sol
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ import {LibBytes} from "rain.solmem/lib/LibBytes.sol";
import {LibMemCpy, Pointer} from "rain.solmem/lib/LibMemCpy.sol";
import {DecimalFloat} from "../../concrete/DecimalFloat.sol";

address constant LOG_TABLES_ADDRESS = 0x295180b25A5059a2e7eC64272ba4F85047B4146A;

library LibDecimalFloatDeploy {
function combinedTables() internal pure returns (bytes memory) {
return
Expand Down
2 changes: 1 addition & 1 deletion test/src/lib/LibDecimalFloat.pow10.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ contract LibDecimalFloatPow10Test is LogTest {
) {
if (exponent > type(int32).max) {
vm.expectRevert(abi.encodeWithSelector(ExponentOverflow.selector, signedCoefficient, exponent));
Float floatPower10 = this.pow10External(float);
this.pow10External(float);
} else {
Float floatPower10 = this.pow10External(float);
(int256 signedCoefficientUnpacked, int256 exponentUnpacked) = floatPower10.unpack();
Expand Down
Loading