Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c++ > #91410

Re: How can I get an implementation of fmod()?

From Bonita Montero <Bonita.Montero@gmail.com>
Newsgroups comp.lang.c++
Subject Re: How can I get an implementation of fmod()?
Date 2023-08-25 10:43 +0200
Organization A noiseless patient Spider
Message-ID <uc9pjv$3uscl$1@dont-email.me> (permalink)
References <b1f2568f-0221-4b79-b6c6-115abd875541n@googlegroups.com> <uc9p27$3ului$1@dont-email.me> <uc9p8a$3up4g$1@dont-email.me>

Show all headers | View raw


Am 25.08.2023 um 10:37 schrieb Bonita Montero:
> Am 25.08.2023 um 10:34 schrieb James Kuyper:
> 
>> float fmodf(float x,float y) {
>> return x - truncf(x/y)*y;
>> }
> 
> This doesn't work because when the exponent difference of x and y is
> too large there might be integer-bits before the fraction of the div
> -result lost so that the difference becomes larger than y.
> A proper solution is much more complex. Check the solution I've shown
> in this thread or the recend 8/1/2023 glibc solution in /sysdepes
> /ieee754/dbl-64/e_fmod.c.

Check this code:

#include <iostream>
#include <cmath>
#include <bit>
#include <cstdint>

using namespace std;

int main()
{
	double
		a = bit_cast<double>( (uint64_t)0x7FE << 52 ),
		b = bit_cast<double>( 1.0 );
	cout << b - trunc( a / b ) << endl;
}

The result should be >= 0.0 and < 1.0 and my computer prints:

-8.98847e+307

Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

How can I get an implementation of fmod()? Megumin <chrisramirez0227@gmail.com> - 2023-08-24 23:25 -0700
  Re: How can I get an implementation of fmod()? Bonita Montero <Bonita.Montero@gmail.com> - 2023-08-25 09:19 +0200
    Re: How can I get an implementation of fmod()? Bonita Montero <Bonita.Montero@gmail.com> - 2023-08-25 09:35 +0200
  Re: How can I get an implementation of fmod()? Bonita Montero <Bonita.Montero@gmail.com> - 2023-08-25 09:49 +0200
  Re: How can I get an implementation of fmod()? James Kuyper <jameskuyper@alumni.caltech.edu> - 2023-08-25 04:34 -0400
    Re: How can I get an implementation of fmod()? Bonita Montero <Bonita.Montero@gmail.com> - 2023-08-25 10:37 +0200
      Re: How can I get an implementation of fmod()? Bonita Montero <Bonita.Montero@gmail.com> - 2023-08-25 10:43 +0200
        Re: How can I get an implementation of fmod()? Bonita Montero <Bonita.Montero@gmail.com> - 2023-08-25 11:20 +0200
          Re: How can I get an implementation of fmod()? Megumin <chrisramirez0227@gmail.com> - 2023-08-30 22:52 -0700
            Re: How can I get an implementation of fmod()? Bonita Montero <Bonita.Montero@gmail.com> - 2023-08-31 11:00 +0200
            Re: How can I get an implementation of fmod()? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2023-08-31 21:48 +0100
            Re: How can I get an implementation of fmod()? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2023-08-31 14:37 -0700
    Re: How can I get an implementation of fmod()? James Kuyper <jameskuyper@alumni.caltech.edu> - 2023-08-25 04:44 -0400

csiph-web