On Sun, 15 Dec 2024 21:57:12 GMT, j3graham <d...@openjdk.org> wrote: >> Raffaello Giulietti has updated the pull request with a new target base due >> to a merge or a rebase. The incremental webrev excludes the unrelated >> changes brought in by the merge/rebase. The pull request contains five >> additional commits since the last revision: >> >> - Merge branch 'master' into 8343829 >> - Minors in comments. >> - Removed repeated comment. >> - Refactoring some code and comments. >> - 8343829: Unify decimal and hexadecimal parsing in FloatingDecimal > > src/java.base/share/classes/jdk/internal/math/FloatingDecimal.java line 2354: > >> 2352: >> 2353: /* The precision of the format. */ >> 2354: private static final int[] P = { > > What about organizing these constants as as a record - something like this: > > > record FloatFmt(int ix, int p, int epMin, int epMax, int w, int eMin, int > eMax, int qMin, int hexCount) { > > public static final FloatFmt BINARY_16 = build(0, 11, -8, 6); > public static final FloatFmt BINARY_32 = build(1, 24, -46, 40); > public static final FloatFmt BINARY_64 = build(2, 53, -324, 310); > public static final FloatFmt BINARY_128 = build(3, 113, -4_966, 4934); > public static final FloatFmt BINARY_256 = build(4, 237, -78_985, 78_915); > > private static FloatFmt build(int ix, int p, int epMin, int epMax) { > int w = (1 << 4 + ix) - p; > int eMin = (-1 << w - 1) + 2; > int eMax = (1 << w - 1) - 1; > int qMin = eMin - p + 1; > int hexCount = p / 4 + 2; > > return new FloatFmt(ix, p, epMin, epMax, w, eMin, eMax, qMin, > hexCount); > } > } > > > > Methods could then be parameterized with the static instances rather than > integers. I believe these values would inline well as constants.
Thanks for the suggestion @j3graham. I'll consider it for the next commits. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/22737#discussion_r1886395018