Thanks Brian and Joe,

I don't have time to build the jdk myself, so I will probably wait for the
shipilev nightly builds and try it out asap.

On Mon, Aug 3, 2026, 6:03 PM Joseph D. Darcy <[email protected]> wrote:

> The BigRational code is a prototype on an experimental branch on a project
> repository.
>
> It should be understood that a prototype on an experimental branch on a
> project repository does not have the same expectations, including
> performance expectations, of code in the mainline repository, even
> previewing or incubating code.
>
> -Joe
>
> On 8/3/2026 10:40 AM, David Alayachew wrote:
>
> Perfect! That was exactly what I was looking for. Ty vm. What would you
> say the chances of this making it in to the Standard Library are? Also,
> since BigRational is normalized, that means that it depends heavily on
> reduction. That means the
> Perfect! That was exactly what I was looking for. Ty vm.
>
> What would you say the chances of this making it in to the Standard
> Library are?
>
> Also, since BigRational is normalized, that means that it depends heavily
> on reduction. That means the performance of gcd(), which I see you are
> using, matters a ton. Would that be something you might specialize in order
> to get good performance? I ask because I too started with gcd, but found it
> to have some performance problems over time. Nothing bad, but this is a
> number class, so that matters.
>
> Thank you again, this is very insightful information!
>
>
> On Mon, Aug 3, 2026, 11:20 AM Joseph D. Darcy <[email protected]>
> wrote:
>
>> Slide 39 of the slide deck [1] corresponding to the talk, gives a link
>>
>> https://github.com/openjdk/valhalla/tree/type-classes/
>> <https://urldefense.com/v3/__https://github.com/openjdk/valhalla/tree/type-classes/__;!!ACWV5N9M2RV99hQ!IOhmnML2O-DvBqaOqA0IHFqjwVLBEQ6pc63ABxO73GOrhKw1XZ6wMvcJfmbjbO1pvSvYwgQXwbR38lrwwJQdQgon$>
>>
>> to a Valhalla branch hosting numerical experiments with type classes
>> [2]. Some of the numerical prototypes there predate JavaOne. One of the
>> prototypes added after JavaOne was a BigRational type build on top of
>> BigIntegers:
>>
>>
>> https://github.com/openjdk/valhalla/blob/type-classes/src/java.base/share/classes/java/math/BigRational.java
>> <https://urldefense.com/v3/__https://github.com/openjdk/valhalla/blob/type-classes/src/java.base/share/classes/java/math/BigRational.java__;!!ACWV5N9M2RV99hQ!IOhmnML2O-DvBqaOqA0IHFqjwVLBEQ6pc63ABxO73GOrhKw1XZ6wMvcJfmbjbO1pvSvYwgQXwbR38lrwwAAlMzNb$>
>>
>> Note a "Fraction" type would be different from a "Rational" type since
>> Fraction would presumably distinguish between "1/2" and "2/4" whereas a
>> Rational type would normalize these to 1/2.
>>
>> -Joe
>>
>> [1]
>>
>> https://github.com/jddarcy/SpeakingArchive/blob/master/J1-2026-NumericalPaths.pdf
>> <https://urldefense.com/v3/__https://github.com/jddarcy/SpeakingArchive/blob/master/J1-2026-NumericalPaths.pdf__;!!ACWV5N9M2RV99hQ!IOhmnML2O-DvBqaOqA0IHFqjwVLBEQ6pc63ABxO73GOrhKw1XZ6wMvcJfmbjbO1pvSvYwgQXwbR38lrwwEM2FeCV$>
>>
>> [2] https://github.com/openjdk/valhalla/compare/lworld...type-classes
>> <https://urldefense.com/v3/__https://github.com/openjdk/valhalla/compare/lworld...type-classes__;!!ACWV5N9M2RV99hQ!IOhmnML2O-DvBqaOqA0IHFqjwVLBEQ6pc63ABxO73GOrhKw1XZ6wMvcJfmbjbO1pvSvYwgQXwbR38lrwwHBkpUVz$>
>>
>> On 8/2/2026 1:18 PM, David Alayachew wrote:
>> > Hello @valhalla-dev <[email protected]>,
>> >
>> > I just recently watched the video from JavaOne 2026 by Joe Darcy titled
>> > "Paths to New Numeric Types on the Java Platform". Here is a link to it.
>> >
>> >
>> https://reddit.com/r/java/comments/1vdesc4/paths_to_new_numeric_types_on_the_java_platform/
>> <https://urldefense.com/v3/__https://reddit.com/r/java/comments/1vdesc4/paths_to_new_numeric_types_on_the_java_platform/__;!!ACWV5N9M2RV99hQ!IOhmnML2O-DvBqaOqA0IHFqjwVLBEQ6pc63ABxO73GOrhKw1XZ6wMvcJfmbjbO1pvSvYwgQXwbR38lrwwOLDT56e$>
>> >
>> > My question is about Fractions.
>> >
>> > The talk mentions that, if the mentioned features ever ship, we can
>> expect
>> > to see Float16, amongst others, added to the JDK. Might we see Fractions
>> > join that list?
>> >
>> > I attempted my own version of this, titled BigNumber. Simply put, it
>> was a
>> > class with a BigInteger numerator and a BigInteger denominator. Thus,
>> > arbitrary precision until you need to cast/convert to another type. It
>> was
>> > a really pleasant alternative to BigDecimal.
>> >
>> > Here is the class -- https://github.com/davidalayachew/BigNumber
>> <https://urldefense.com/v3/__https://github.com/davidalayachew/BigNumber__;!!ACWV5N9M2RV99hQ!IOhmnML2O-DvBqaOqA0IHFqjwVLBEQ6pc63ABxO73GOrhKw1XZ6wMvcJfmbjbO1pvSvYwgQXwbR38lrwwF8vMxOa$>
>> >
>> > I'm not at all proposing that my implementation is the right way to do
>> it.
>> > Furthermore, I can make my own if/when this feature drops. But I wanted
>> to
>> > ask if a fraction type like this might be added, as I suspect that this
>> > would be a valuable tool for others too.
>> >
>> > Thank you for your time and consideration.
>> > David Alayachew
>>
>>
>>
>

Reply via email to