X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-sqrtl.c;h=2386afd0238b64aed6800453d6e7317fd1005226;hb=1276a2c5f24c0c932426aca9c899fa524d2443f2;hp=23dcfe43ae678389bd843086b75ffdfd50e0fc34;hpb=c5bc2aeaf6f4ca2d1e25f58b78a655f6211b50a6;p=gnulib.git diff --git a/tests/test-sqrtl.c b/tests/test-sqrtl.c index 23dcfe43a..2386afd02 100644 --- a/tests/test-sqrtl.c +++ b/tests/test-sqrtl.c @@ -1,5 +1,5 @@ /* Test of sqrtl() function. - Copyright (C) 2010-2012 Free Software Foundation, Inc. + Copyright (C) 2010-2014 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -35,6 +35,16 @@ SIGNATURE_CHECK (sqrtl, long double, (long double)); #define RANDOM randoml #include "test-sqrt.h" +static long double +my_ldexpl (long double x, int d) +{ + for (; d > 0; d--) + x *= 2.0L; + for (; d < 0; d++) + x *= 0.5L; + return x; +} + int main () { @@ -47,6 +57,20 @@ main () y = sqrtl (x); ASSERT (y >= 0.7745966692L && y <= 0.7745966693L); + /* Another particular value. */ + { + long double z; + long double err; + + x = 8.1974099812331540680810141969554806865L; + y = sqrtl (x); + z = y * y - x; + err = my_ldexpl (z, LDBL_MANT_DIG); + if (err < 0) + err = - err; + ASSERT (err <= 100.0L); + } + test_function (); return 0;