diff options
author | Elizabeth Hunt <elizabeth.hunt@simponic.xyz> | 2023-10-11 10:04:04 -0600 |
---|---|---|
committer | Elizabeth Hunt <elizabeth.hunt@simponic.xyz> | 2023-10-11 10:04:04 -0600 |
commit | 43f06890e2689af2ef54c4480fe5790692a24f65 (patch) | |
tree | b933f3e05aad81d780c0c94646676efa1bbad22d /src/maceps.c | |
parent | a74a732b27fb610133190e89a91b2d42d0cf78b3 (diff) | |
download | cmath-43f06890e2689af2ef54c4480fe5790692a24f65.tar.gz cmath-43f06890e2689af2ef54c4480fe5790692a24f65.zip |
deprecate common lisp solutions and write c; it's too much effort to keep up with the requirements for an archive.
Diffstat (limited to 'src/maceps.c')
-rw-r--r-- | src/maceps.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/maceps.c b/src/maceps.c new file mode 100644 index 0000000..23bc9db --- /dev/null +++ b/src/maceps.c @@ -0,0 +1,28 @@ +#include "lizfcm.h" +#include <math.h> + +float smaceps() { + float one = 1.0; + float machine_epsilon = 1.0; + float one_approx = one + machine_epsilon; + + while (fabsf(one_approx - one) > 0) { + machine_epsilon /= 2; + one_approx = one + machine_epsilon; + } + + return machine_epsilon; +} + +double dmaceps() { + double one = 1.0; + double machine_epsilon = 1.0; + double one_approx = one + machine_epsilon; + + while (fabs(one_approx - one) > 0) { + machine_epsilon /= 2; + one_approx = one + machine_epsilon; + } + + return machine_epsilon; +} |