From 006b4ec9b25c3f8230f9fd9ebffb6ff2b11dd2ab Mon Sep 17 00:00:00 2001 From: Intel A80486DX2-66 Date: Tue, 25 Jun 2024 12:17:46 +0300 Subject: [PATCH] floatscan-experiment.c: implement `copysignl` --- c-programming/experiments/floatscan-experiment.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/c-programming/experiments/floatscan-experiment.c b/c-programming/experiments/floatscan-experiment.c index 66268cf..77fb939 100644 --- a/c-programming/experiments/floatscan-experiment.c +++ b/c-programming/experiments/floatscan-experiment.c @@ -47,6 +47,7 @@ /* wrapping code --- beginning */ const char* fgetc_ptr = NULL; +static long double copysignl(long double mag, long double sgn); static int __shgetc(void); static int __shunget(void); static long double interface_floatscan(const char* s, int prec); @@ -567,6 +568,10 @@ long double __floatscan(FILE *f, int prec, int pok) /* the original musl libc code --- end */ /* wrapping code --- beginning */ +static long double copysignl(long double mag, long double sgn) { + return fabsl(mag) * (sgn < 0 ? -1 : 1); +} + static int __shgetc(void) { return *fgetc_ptr++; }