123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497 |
- /* Test vectors for math functions.
- See C9X section F.9.
- On some systems it may be necessary to modify the default exception
- settings of the floating point arithmetic unit. */
- /*
- Cephes Math Library Release 2.7: May, 1998
- Copyright 1998 by Stephen L. Moshier
- */
- #include <stdio.h>
- int isfinitel (long double);
- /* Some compilers will not accept these expressions. */
- #define ZINF 1
- #define ZMINF 2
- #define ZNANL 3
- #define ZPIL 4
- #define ZPIO2L 4
- extern long double INFINITYL, NANL, NEGZEROL;
- long double MINFL;
- extern long double PIL, PIO2L, PIO4L, MACHEPL;
- long double MPIL;
- long double MPIO2L;
- long double MPIO4L;
- long double THPIO4L = 2.35619449019234492884698L;
- long double MTHPIO4L = -2.35619449019234492884698L;
- long double SQRT2L = 1.414213562373095048802E0L;
- long double SQRTHL = 7.071067811865475244008E-1L;
- long double ZEROL = 0.0L;
- long double HALFL = 0.5L;
- long double MHALFL = -0.5L;
- long double ONEL = 1.0L;
- long double MONEL = -1.0L;
- long double TWOL = 2.0L;
- long double MTWOL = -2.0L;
- long double THREEL = 3.0L;
- long double MTHREEL = -3.0L;
- /* Functions of one variable. */
- long double logl (long double);
- long double expl (long double);
- long double atanl (long double);
- long double sinl (long double);
- long double cosl (long double);
- long double tanl (long double);
- long double acosl (long double);
- long double asinl (long double);
- long double acoshl (long double);
- long double asinhl (long double);
- long double atanhl (long double);
- long double sinhl (long double);
- long double coshl (long double);
- long double tanhl (long double);
- long double exp2l (long double);
- long double expm1l (long double);
- long double log10l (long double);
- long double log1pl (long double);
- long double log2l (long double);
- long double fabsl (long double);
- long double erfl (long double);
- long double erfcl (long double);
- long double gammal (long double);
- long double lgaml (long double);
- long double floorl (long double);
- long double ceill (long double);
- long double cbrtl (long double);
- struct oneargument
- {
- char *name; /* Name of the function. */
- long double (*func) (long double);
- long double *arg1;
- long double *answer;
- int thresh; /* Error report threshold. */
- };
- #if 0
- {"sinl", sinl, 32767.L, 1.8750655394138942394239E-1L, 0},
- {"cosl", cosl, 32767.L, 9.8226335176928229845654E-1L, 0},
- {"tanl", tanl, 32767.L, 1.9089234430221485740826E-1L, 0},
- {"sinl", sinl, 8388607.L, 9.9234509376961249835628E-1L, 0},
- {"cosl", cosl, 8388607.L, -1.2349580912475928183718E-1L, 0},
- {"tanl", tanl, 8388607.L, -8.0354556223613614748329E0L, 0},
- {"sinl", sinl, 2147483647.L, -7.2491655514455639054829E-1L, 0},
- {"cosl", cosl, 2147483647.L, -6.8883669187794383467976E-1L, 0},
- {"tanl", tanl, 2147483647.L, 1.0523779637351339136698E0L, 0},
- {"sinl", sinl, PIO4L, 7.0710678118654752440084E-1L, 0},
- {"cosl", cosl, PIO2L, -2.50827880633416613471e-20L, 0},
- #endif
- struct oneargument test1[] =
- {
- {"atanl", atanl, &ONEL, &PIO4L, 0},
- {"sinl", sinl, &PIO2L, &ONEL, 0},
- {"cosl", cosl, &PIO4L, &SQRTHL, 0},
- {"acosl", acosl, &NANL, &NANL, 0},
- {"acosl", acosl, &ONEL, &ZEROL, 0},
- {"acosl", acosl, &TWOL, &NANL, 0},
- {"acosl", acosl, &MTWOL, &NANL, 0},
- {"asinl", asinl, &NANL, &NANL, 0},
- {"asinl", asinl, &ZEROL, &ZEROL, 0},
- {"asinl", asinl, &NEGZEROL, &NEGZEROL, 0},
- {"asinl", asinl, &TWOL, &NANL, 0},
- {"asinl", asinl, &MTWOL, &NANL, 0},
- {"atanl", atanl, &NANL, &NANL, 0},
- {"atanl", atanl, &ZEROL, &ZEROL, 0},
- {"atanl", atanl, &NEGZEROL, &NEGZEROL, 0},
- {"atanl", atanl, &INFINITYL, &PIO2L, 0},
- {"atanl", atanl, &MINFL, &MPIO2L, 0},
- {"cosl", cosl, &NANL, &NANL, 0},
- {"cosl", cosl, &ZEROL, &ONEL, 0},
- {"cosl", cosl, &NEGZEROL, &ONEL, 0},
- {"cosl", cosl, &INFINITYL, &NANL, 0},
- {"cosl", cosl, &MINFL, &NANL, 0},
- {"sinl", sinl, &NANL, &NANL, 0},
- {"sinl", sinl, &NEGZEROL, &NEGZEROL, 0},
- {"sinl", sinl, &ZEROL, &ZEROL, 0},
- {"sinl", sinl, &INFINITYL, &NANL, 0},
- {"sinl", sinl, &MINFL, &NANL, 0},
- {"tanl", tanl, &NANL, &NANL, 0},
- {"tanl", tanl, &ZEROL, &ZEROL, 0},
- {"tanl", tanl, &NEGZEROL, &NEGZEROL, 0},
- {"tanl", tanl, &INFINITYL, &NANL, 0},
- {"tanl", tanl, &MINFL, &NANL, 0},
- {"acoshl", acoshl, &NANL, &NANL, 0},
- {"acoshl", acoshl, &ONEL, &ZEROL, 0},
- {"acoshl", acoshl, &INFINITYL, &INFINITYL, 0},
- {"acoshl", acoshl, &HALFL, &NANL, 0},
- {"acoshl", acoshl, &MONEL, &NANL, 0},
- {"asinhl", asinhl, &NANL, &NANL, 0},
- {"asinhl", asinhl, &ZEROL, &ZEROL, 0},
- {"asinhl", asinhl, &NEGZEROL, &NEGZEROL, 0},
- {"asinhl", asinhl, &INFINITYL, &INFINITYL, 0},
- {"asinhl", asinhl, &MINFL, &MINFL, 0},
- {"atanhl", atanhl, &NANL, &NANL, 0},
- {"atanhl", atanhl, &ZEROL, &ZEROL, 0},
- {"atanhl", atanhl, &NEGZEROL, &NEGZEROL, 0},
- {"atanhl", atanhl, &ONEL, &INFINITYL, 0},
- {"atanhl", atanhl, &MONEL, &MINFL, 0},
- {"atanhl", atanhl, &TWOL, &NANL, 0},
- {"atanhl", atanhl, &MTWOL, &NANL, 0},
- {"coshl", coshl, &NANL, &NANL, 0},
- {"coshl", coshl, &ZEROL, &ONEL, 0},
- {"coshl", coshl, &NEGZEROL, &ONEL, 0},
- {"coshl", coshl, &INFINITYL, &INFINITYL, 0},
- {"coshl", coshl, &MINFL, &INFINITYL, 0},
- {"sinhl", sinhl, &NANL, &NANL, 0},
- {"sinhl", sinhl, &ZEROL, &ZEROL, 0},
- {"sinhl", sinhl, &NEGZEROL, &NEGZEROL, 0},
- {"sinhl", sinhl, &INFINITYL, &INFINITYL, 0},
- {"sinhl", sinhl, &MINFL, &MINFL, 0},
- {"tanhl", tanhl, &NANL, &NANL, 0},
- {"tanhl", tanhl, &ZEROL, &ZEROL, 0},
- {"tanhl", tanhl, &NEGZEROL, &NEGZEROL, 0},
- {"tanhl", tanhl, &INFINITYL, &ONEL, 0},
- {"tanhl", tanhl, &MINFL, &MONEL, 0},
- {"expl", expl, &NANL, &NANL, 0},
- {"expl", expl, &ZEROL, &ONEL, 0},
- {"expl", expl, &NEGZEROL, &ONEL, 0},
- {"expl", expl, &INFINITYL, &INFINITYL, 0},
- {"expl", expl, &MINFL, &ZEROL, 0},
- {"exp2l", exp2l, &NANL, &NANL, 0},
- {"exp2l", exp2l, &ZEROL, &ONEL, 0},
- {"exp2l", exp2l, &NEGZEROL, &ONEL, 0},
- {"exp2l", exp2l, &INFINITYL, &INFINITYL, 0},
- {"exp2l", exp2l, &MINFL, &ZEROL, 0},
- {"expm1l", expm1l, &NANL, &NANL, 0},
- {"expm1l", expm1l, &ZEROL, &ZEROL, 0},
- {"expm1l", expm1l, &NEGZEROL, &NEGZEROL, 0},
- {"expm1l", expm1l, &INFINITYL, &INFINITYL, 0},
- {"expm1l", expm1l, &MINFL, &MONEL, 0},
- {"logl", logl, &NANL, &NANL, 0},
- {"logl", logl, &ZEROL, &MINFL, 0},
- {"logl", logl, &NEGZEROL, &MINFL, 0},
- {"logl", logl, &ONEL, &ZEROL, 0},
- {"logl", logl, &MONEL, &NANL, 0},
- {"logl", logl, &INFINITYL, &INFINITYL, 0},
- {"log10l", log10l, &NANL, &NANL, 0},
- {"log10l", log10l, &ZEROL, &MINFL, 0},
- {"log10l", log10l, &NEGZEROL, &MINFL, 0},
- {"log10l", log10l, &ONEL, &ZEROL, 0},
- {"log10l", log10l, &MONEL, &NANL, 0},
- {"log10l", log10l, &INFINITYL, &INFINITYL, 0},
- {"log1pl", log1pl, &NANL, &NANL, 0},
- {"log1pl", log1pl, &ZEROL, &ZEROL, 0},
- {"log1pl", log1pl, &NEGZEROL, &NEGZEROL, 0},
- {"log1pl", log1pl, &MONEL, &MINFL, 0},
- {"log1pl", log1pl, &MTWOL, &NANL, 0},
- {"log1pl", log1pl, &INFINITYL, &INFINITYL, 0},
- {"log2l", log2l, &NANL, &NANL, 0},
- {"log2l", log2l, &ZEROL, &MINFL, 0},
- {"log2l", log2l, &NEGZEROL, &MINFL, 0},
- {"log2l", log2l, &MONEL, &NANL, 0},
- {"log2l", log2l, &INFINITYL, &INFINITYL, 0},
- /* {"fabsl", fabsl, &NANL, &NANL, 0}, */
- {"fabsl", fabsl, &ONEL, &ONEL, 0},
- {"fabsl", fabsl, &MONEL, &ONEL, 0},
- {"fabsl", fabsl, &ZEROL, &ZEROL, 0},
- {"fabsl", fabsl, &NEGZEROL, &ZEROL, 0},
- {"fabsl", fabsl, &INFINITYL, &INFINITYL, 0},
- {"fabsl", fabsl, &MINFL, &INFINITYL, 0},
- {"cbrtl", cbrtl, &NANL, &NANL, 0},
- {"cbrtl", cbrtl, &ZEROL, &ZEROL, 0},
- {"cbrtl", cbrtl, &NEGZEROL, &NEGZEROL, 0},
- {"cbrtl", cbrtl, &INFINITYL, &INFINITYL, 0},
- {"cbrtl", cbrtl, &MINFL, &MINFL, 0},
- {"erfl", erfl, &NANL, &NANL, 0},
- {"erfl", erfl, &ZEROL, &ZEROL, 0},
- {"erfl", erfl, &NEGZEROL, &NEGZEROL, 0},
- {"erfl", erfl, &INFINITYL, &ONEL, 0},
- {"erfl", erfl, &MINFL, &MONEL, 0},
- {"erfcl", erfcl, &NANL, &NANL, 0},
- {"erfcl", erfcl, &INFINITYL, &ZEROL, 0},
- {"erfcl", erfcl, &MINFL, &TWOL, 0},
- {"gammal", gammal, &NANL, &NANL, 0},
- {"gammal", gammal, &INFINITYL, &INFINITYL, 0},
- {"gammal", gammal, &MONEL, &NANL, 0},
- {"gammal", gammal, &ZEROL, &NANL, 0},
- {"gammal", gammal, &MINFL, &NANL, 0},
- {"lgaml", lgaml, &NANL, &NANL, 0},
- {"lgaml", lgaml, &INFINITYL, &INFINITYL, 0},
- {"lgaml", lgaml, &MONEL, &INFINITYL, 0},
- {"lgaml", lgaml, &ZEROL, &INFINITYL, 0},
- {"lgaml", lgaml, &MINFL, &INFINITYL, 0},
- {"ceill", ceill, &NANL, &NANL, 0},
- {"ceill", ceill, &ZEROL, &ZEROL, 0},
- {"ceill", ceill, &NEGZEROL, &NEGZEROL, 0},
- {"ceill", ceill, &INFINITYL, &INFINITYL, 0},
- {"ceill", ceill, &MINFL, &MINFL, 0},
- {"floorl", floorl, &NANL, &NANL, 0},
- {"floorl", floorl, &ZEROL, &ZEROL, 0},
- {"floorl", floorl, &NEGZEROL, &NEGZEROL, 0},
- {"floorl", floorl, &INFINITYL, &INFINITYL, 0},
- {"floorl", floorl, &MINFL, &MINFL, 0},
- {"null", NULL, &ZEROL, &ZEROL, 0},
- };
- /* Functions of two variables. */
- long double atan2l (long double, long double);
- long double powl (long double, long double);
- struct twoarguments
- {
- char *name; /* Name of the function. */
- long double (*func) (long double, long double);
- long double *arg1;
- long double *arg2;
- long double *answer;
- int thresh;
- };
- struct twoarguments test2[] =
- {
- {"atan2l", atan2l, &ZEROL, &ONEL, &ZEROL, 0},
- {"atan2l", atan2l, &NEGZEROL, &ONEL,&NEGZEROL, 0},
- {"atan2l", atan2l, &ZEROL, &ZEROL, &ZEROL, 0},
- {"atan2l", atan2l, &NEGZEROL, &ZEROL, &NEGZEROL, 0},
- {"atan2l", atan2l, &ZEROL, &MONEL, &PIL, 0},
- {"atan2l", atan2l, &NEGZEROL, &MONEL, &MPIL, 0},
- {"atan2l", atan2l, &ZEROL, &NEGZEROL, &PIL, 0},
- {"atan2l", atan2l, &NEGZEROL, &NEGZEROL, &MPIL, 0},
- {"atan2l", atan2l, &ONEL, &ZEROL, &PIO2L, 0},
- {"atan2l", atan2l, &ONEL, &NEGZEROL, &PIO2L, 0},
- {"atan2l", atan2l, &MONEL, &ZEROL, &MPIO2L, 0},
- {"atan2l", atan2l, &MONEL, &NEGZEROL, &MPIO2L, 0},
- {"atan2l", atan2l, &ONEL, &INFINITYL, &ZEROL, 0},
- {"atan2l", atan2l, &MONEL, &INFINITYL, &NEGZEROL, 0},
- {"atan2l", atan2l, &INFINITYL, &ONEL, &PIO2L, 0},
- {"atan2l", atan2l, &INFINITYL, &MONEL, &PIO2L, 0},
- {"atan2l", atan2l, &MINFL, &ONEL, &MPIO2L, 0},
- {"atan2l", atan2l, &MINFL, &MONEL, &MPIO2L, 0},
- {"atan2l", atan2l, &ONEL, &MINFL, &PIL, 0},
- {"atan2l", atan2l, &MONEL, &MINFL, &MPIL, 0},
- {"atan2l", atan2l, &INFINITYL, &INFINITYL, &PIO4L, 0},
- {"atan2l", atan2l, &MINFL, &INFINITYL, &MPIO4L, 0},
- {"atan2l", atan2l, &INFINITYL, &MINFL, &THPIO4L, 0},
- {"atan2l", atan2l, &MINFL, &MINFL, &MTHPIO4L, 0},
- {"atan2l", atan2l, &ONEL, &ONEL, &PIO4L, 0},
- {"atan2l", atan2l, &NANL, &ONEL, &NANL, 0},
- {"atan2l", atan2l, &ONEL, &NANL, &NANL, 0},
- {"atan2l", atan2l, &NANL, &NANL, &NANL, 0},
- {"powl", powl, &ONEL, &ZEROL, &ONEL, 0},
- {"powl", powl, &ONEL, &NEGZEROL, &ONEL, 0},
- {"powl", powl, &MONEL, &ZEROL, &ONEL, 0},
- {"powl", powl, &MONEL, &NEGZEROL, &ONEL, 0},
- {"powl", powl, &INFINITYL, &ZEROL, &ONEL, 0},
- {"powl", powl, &INFINITYL, &NEGZEROL, &ONEL, 0},
- {"powl", powl, &NANL, &ZEROL, &ONEL, 0},
- {"powl", powl, &NANL, &NEGZEROL, &ONEL, 0},
- {"powl", powl, &TWOL, &INFINITYL, &INFINITYL, 0},
- {"powl", powl, &MTWOL, &INFINITYL, &INFINITYL, 0},
- {"powl", powl, &HALFL, &INFINITYL, &ZEROL, 0},
- {"powl", powl, &MHALFL, &INFINITYL, &ZEROL, 0},
- {"powl", powl, &TWOL, &MINFL, &ZEROL, 0},
- {"powl", powl, &MTWOL, &MINFL, &ZEROL, 0},
- {"powl", powl, &HALFL, &MINFL, &INFINITYL, 0},
- {"powl", powl, &MHALFL, &MINFL, &INFINITYL, 0},
- {"powl", powl, &INFINITYL, &HALFL, &INFINITYL, 0},
- {"powl", powl, &INFINITYL, &TWOL, &INFINITYL, 0},
- {"powl", powl, &INFINITYL, &MHALFL, &ZEROL, 0},
- {"powl", powl, &INFINITYL, &MTWOL, &ZEROL, 0},
- {"powl", powl, &MINFL, &THREEL, &MINFL, 0},
- {"powl", powl, &MINFL, &TWOL, &INFINITYL, 0},
- {"powl", powl, &MINFL, &MTHREEL, &NEGZEROL, 0},
- {"powl", powl, &MINFL, &MTWOL, &ZEROL, 0},
- {"powl", powl, &NANL, &ONEL, &NANL, 0},
- {"powl", powl, &ONEL, &NANL, &NANL, 0},
- {"powl", powl, &NANL, &NANL, &NANL, 0},
- {"powl", powl, &ONEL, &INFINITYL, &NANL, 0},
- {"powl", powl, &MONEL, &INFINITYL, &NANL, 0},
- {"powl", powl, &ONEL, &MINFL, &NANL, 0},
- {"powl", powl, &MONEL, &MINFL, &NANL, 0},
- {"powl", powl, &MTWOL, &HALFL, &NANL, 0},
- {"powl", powl, &ZEROL, &MTHREEL, &INFINITYL, 0},
- {"powl", powl, &NEGZEROL, &MTHREEL, &MINFL, 0},
- {"powl", powl, &ZEROL, &MHALFL, &INFINITYL, 0},
- {"powl", powl, &NEGZEROL, &MHALFL, &INFINITYL, 0},
- {"powl", powl, &ZEROL, &THREEL, &ZEROL, 0},
- {"powl", powl, &NEGZEROL, &THREEL, &NEGZEROL, 0},
- {"powl", powl, &ZEROL, &HALFL, &ZEROL, 0},
- {"powl", powl, &NEGZEROL, &HALFL, &ZEROL, 0},
- {"null", NULL, &ZEROL, &ZEROL, &ZEROL, 0},
- };
- /* Integer functions of one variable. */
- int isnanl (long double);
- int signbitl (long double);
- struct intans
- {
- char *name; /* Name of the function. */
- int (*func) (long double);
- long double *arg1;
- int ianswer;
- };
- struct intans test3[] =
- {
- {"isfinitel", isfinitel, &ZEROL, 1},
- {"isfinitel", isfinitel, &INFINITYL, 0},
- {"isfinitel", isfinitel, &MINFL, 0},
- {"isnanl", isnanl, &NANL, 1},
- {"isnanl", isnanl, &INFINITYL, 0},
- {"isnanl", isnanl, &ZEROL, 0},
- {"isnanl", isnanl, &NEGZEROL, 0},
- {"signbitl", signbitl, &NEGZEROL, 1},
- {"signbitl", signbitl, &MONEL, 1},
- {"signbitl", signbitl, &ZEROL, 0},
- {"signbitl", signbitl, &ONEL, 0},
- {"signbitl", signbitl, &MINFL, 1},
- {"signbitl", signbitl, &INFINITYL, 0},
- {"null", NULL, &ZEROL, 0},
- };
- static volatile long double x1;
- static volatile long double x2;
- static volatile long double y;
- static volatile long double answer;
- int
- main ()
- {
- int i, nerrors, k, ianswer, ntests;
- long double (*fun1) (long double);
- long double (*fun2) (long double, long double);
- int (*fun3) (long double);
- long double e;
- union
- {
- long double d;
- char c[12];
- } u, v;
- /* This masks off fpu exceptions on i386. */
- /* setfpu(0x137f); */
- nerrors = 0;
- ntests = 0;
- MINFL = -INFINITYL;
- MPIL = -PIL;
- MPIO2L = -PIO2L;
- MPIO4L = -PIO4L;
- i = 0;
- for (;;)
- {
- fun1 = test1[i].func;
- if (fun1 == NULL)
- break;
- x1 = *(test1[i].arg1);
- y = (*(fun1)) (x1);
- answer = *(test1[i].answer);
- if (test1[i].thresh == 0)
- {
- v.d = answer;
- u.d = y;
- if (memcmp(u.c, v.c, 10) != 0)
- {
- /* O.K. if both are NaNs of some sort. */
- if (isnanl(v.d) && isnanl(u.d))
- goto nxttest1;
- goto wrongone;
- }
- else
- goto nxttest1;
- }
- if (y != answer)
- {
- e = y - answer;
- if (answer != 0.0L)
- e = e / answer;
- if (e < 0)
- e = -e;
- if (e > test1[i].thresh * MACHEPL)
- {
- wrongone:
- printf ("%s (%.20Le) = %.20Le\n should be %.20Le\n",
- test1[i].name, x1, y, answer);
- nerrors += 1;
- }
- }
- nxttest1:
- ntests += 1;
- i += 1;
- }
- i = 0;
- for (;;)
- {
- fun2 = test2[i].func;
- if (fun2 == NULL)
- break;
- x1 = *(test2[i].arg1);
- x2 = *(test2[i].arg2);
- y = (*(fun2)) (x1, x2);
- answer = *(test2[i].answer);
- if (test2[i].thresh == 0)
- {
- v.d = answer;
- u.d = y;
- if (memcmp(u.c, v.c, 10) != 0)
- {
- /* O.K. if both are NaNs of some sort. */
- if (isnanl(v.d) && isnanl(u.d))
- goto nxttest2;
- goto wrongtwo;
- }
- else
- goto nxttest2;
- }
- if (y != answer)
- {
- e = y - answer;
- if (answer != 0.0L)
- e = e / answer;
- if (e < 0)
- e = -e;
- if (e > test2[i].thresh * MACHEPL)
- {
- wrongtwo:
- printf ("%s (%.20Le, %.20Le) = %.20Le\n should be %.20Le\n",
- test2[i].name, x1, x2, y, answer);
- nerrors += 1;
- }
- }
- nxttest2:
- ntests += 1;
- i += 1;
- }
- i = 0;
- for (;;)
- {
- fun3 = test3[i].func;
- if (fun3 == NULL)
- break;
- x1 = *(test3[i].arg1);
- k = (*(fun3)) (x1);
- ianswer = test3[i].ianswer;
- if (k != ianswer)
- {
- printf ("%s (%.20Le) = %d\n should be. %d\n",
- test3[i].name, x1, k, ianswer);
- nerrors += 1;
- }
- ntests += 1;
- i += 1;
- }
- printf ("testvect: %d errors in %d tests\n", nerrors, ntests);
- exit (0);
- }
|