Floating point arithmetics

submitted by

https://eviltoast.org/pictrs/image/44915c44-8836-4961-bd06-a45bba04408a.jpeg

Floating point arithmetics
32
721

Log in to comment

32 Comments

Look at what they need to mimic a fraction *inaccurately*.

The fundamental mathematical nature of how binary floating point values are stored means that extremely straightforward and rational (in the mathematical sense of the term) base-10 arithmetic can surprisingly often yield results that are irrational (again, mathematically) in binary - hence why you’ll sometimes see a result of 3.000000000101325 or something like that in places where you’d expect the result to be simply 3.0

Yep. Open your browser's console and do .1 + .2 and you get 0.30000000000000004.

One of the reasons not to use floating point when working with money.

It'd be more correct to say round or unround.

Irrational specifically means infinite non-repeating decimal values, or equivalently that a number can't be represented as any fraction. This is independent of number system.

Sometimes "more irrational" is used as a way of saying further from any small-integer fraction by some measure, but that doesn't really work here.

i see what you're trying to say, but that's not what rational and irrational means (mathematically).

Look what they need to mimic a fraction of a fraction.

Cause fractions can be figured out in context. You can store the numerators and have the denominator as a constant in the code.

Don't be irrational.

Rational

You like math jokes and guys with fast cars? Well, you're in luck because I drive a bmw √-64

Edit: I know nothing about cars. Don't judge me.

I do enjoy how many number sets are referred to as "normal numbers":
- Natural numbers
- Rational numbers
- Real numbers
- "Integer" is Latin for "hasn't been fucked with"
- And of course, the most normal numbers: https://en.wikipedia.org/wiki/Normal_number

unrelated but the image shows so low res (86x96) that it's unreadable, is this different for everyone else?

what mine shows - https://eviltoast.org/pictrs/image/44915c44-8836-4961-bd06-a45bba04408a.jpeg

The link you gave shows hires for me. Can you try loading in incognito?

just pict-rs things I guess 🤷

hmm very weird. i also tried wget and it grabs the same 86x96 file. https://termbin.com/gvg9

Weird. My wget gives full resolution. No redirect options or anything. Only difference is the IP resolve for you is in Korea and mine is in the US. Likely just closest server resolve.

Try curl with -L set?

Or I'd be curious if something like gallery-dl resolves the image in finding the higher resolution and what the difference is if it does.

Maybe it's a DNS issue if not a redirect issue.

My guess is DNS. Try with another provider?

You're right! 1.1.1.1 (Cloudflare) or my ISP's DNS seems to be weird. Works correctly with 9.9.9.9 (Quad9).

I think you could argue that they're actually trying to mimic real numbers.

Eviltoasts pict-rs is being silly again

It's not "mimicking" a fraction. It is a fraction.

It's also the most compact fraction representation around.

Show how 1/3 can be precisely represented in floating point.

fl_numerator = 1

fl_denominator = 3

And division is a "stretch goal" once we get funding.

How many decimal places can it be stretched?

As usual, the best jokes are in the comments. (Though goddamn I chuckled at the meme.)

Do you have a computer type that can represent the entire rational set?

Yes. Have a structure with 2 BigInts. Treat one as the numerator. The other as denominators.

It might not be efficient or fast. But it is possible.

You are proposing that can represent the entire rational set?

Yes that is correct. A BigInt represents the entire integer set.

Rational numbers are defined by just 2 integers. Therefore, 2 BigInts represent the entire rational set.

No. They all need to mimic certain numbers.

So, you have a notation that can represent the entire rational set?

What exactly is being mimicked?

So, you have a notation that can represent the entire rational set?

No. That's not what the meme is about, and that's not what we're arguing about.

What exactly is being mimicked?

Fractions.

Agreed, but in terms of efficiency wouldn't it make more sense to put the sign bit right before the mantissa in order to keep the memory layout more consistent with powers of two?

I doubt the layout is relevant there as the FPU should be just physically wired to handle it.

Insert image