X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fmath%2Fgen%2Fmplibm.c;h=62b8721ed17092b9db07de0234dea4e58e07fb1e;hb=cb9f87af9a1f917facd1140603b24f1087729751;hp=93225a99a41f398b32ce52c7b09eb9dc38f5c356;hpb=125fb69ba64c0064de25eb1a23217b00aa393051;p=libc-test diff --git a/src/math/gen/mplibm.c b/src/math/gen/mplibm.c index 93225a9..62b8721 100644 --- a/src/math/gen/mplibm.c +++ b/src/math/gen/mplibm.c @@ -313,3 +313,70 @@ mp_f_i(lround) mp_f_i(lroundf) mp_f_i(lroundl) +int mpmodf(struct t *t) +{ + double y2; + + t->dy = t->dy2 = 0; + setupfenv(t->r); + t->y = modf(t->x, &y2); + t->y2 = y2; + t->e = getexcept(); + return 0; +} + +int mpmodff(struct t *t) +{ + float y2; + + t->dy = t->dy2 = 0; + setupfenv(t->r); + t->y = modff(t->x, &y2); + t->y2 = y2; + t->e = getexcept(); + return 0; +} + +int mpmodfl(struct t *t) +{ + t->dy = t->dy2 = 0; + setupfenv(t->r); + t->y = modfl(t->x, &t->y2); + t->e = getexcept(); + return 0; +} + +int mpsincos(struct t *t) +{ + double y, y2; + + t->dy = t->dy2 = 0; + setupfenv(t->r); + sincos(t->x, &y, &y2); + t->y = y; + t->y2 = y2; + t->e = getexcept(); + return 0; +} + +int mpsincosf(struct t *t) +{ + float y, y2; + + t->dy = t->dy2 = 0; + setupfenv(t->r); + sincosf(t->x, &y, &y2); + t->y = y; + t->y2 = y2; + t->e = getexcept(); + return 0; +} + +int mpsincosl(struct t *t) +{ + t->dy = t->dy2 = 0; + setupfenv(t->r); + sincosl(t->x, &t->y, &t->y2); + t->e = getexcept(); + return 0; +}