diff options
author | Kevin Ryde <user42@zip.com.au> | 2002-03-13 01:20:52 +0100 |
---|---|---|
committer | Kevin Ryde <user42@zip.com.au> | 2002-03-13 01:20:52 +0100 |
commit | 30654d3251bd582422660dc779caca31dc91849f (patch) | |
tree | e574a42f418b356d0a5b31bcf2396c4891a572d6 /demos | |
parent | bc58451ae20213836a17345339e8c6031808b739 (diff) | |
download | gmp-30654d3251bd582422660dc779caca31dc91849f.tar.gz |
* demos/expr/exprfr.c: More mpfr functions, corrections to agm, cos,
sin, rename log2 constant to loge2 to make room for log2 function.
* demos/expr/t-expr.c: More tests.
tan and log10 tests not enabled due to mpfr bugs.
Diffstat (limited to 'demos')
-rw-r--r-- | demos/expr/t-expr.c | 168 |
1 files changed, 134 insertions, 34 deletions
diff --git a/demos/expr/t-expr.c b/demos/expr/t-expr.c index b6c8f7270..4cde9e66a 100644 --- a/demos/expr/t-expr.c +++ b/demos/expr/t-expr.c @@ -1,7 +1,6 @@ -/* Test expression evaluation (print nothing and exit 0 if successful). */ +/* Test expression evaluation (print nothing and exit 0 if successful). -/* -Copyright 2000, 2001 Free Software Foundation, Inc. +Copyright 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of the GNU MP Library. @@ -18,8 +17,7 @@ License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU MP Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, -MA 02111-1307, USA. -*/ +MA 02111-1307, USA. */ #include <stdio.h> #include <stdlib.h> @@ -165,7 +163,6 @@ const struct data_t data_z[] = { { 0, "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1", "1" }, { 0, "fib(10)", "55" }, - { 0, "fac(10)", "3628800" }, { 0, "setbit(0,5)", "32" }, { 0, "clrbit(32,5)", "0" }, @@ -180,6 +177,14 @@ const struct data_t data_zq[] = { { 0, "1.2", NULL }, }; +const struct data_t data_zr[] = { + { 0, "fac(0)", "1" }, + { 0, "fac(1)", "1" }, + { 0, "fac(2)", "2" }, + { 0, "fac(3)", "6" }, + { 0, "fac(10)", "3628800" }, +}; + const struct data_t data_q[] = { { 10, "(1/2 + 1/3 + 1/4 + 1/5 + 1/6)*20", "29" }, { 0, "num(5/9)", "5" }, @@ -206,9 +211,31 @@ const struct data_t data_fr[] = { { 16, "1@9", "68719476736" }, + { 0, "ceil(0)", "0" }, + { 0, "ceil(0.25)", "1" }, + { 0, "ceil(0.5)", "1" }, + { 0, "ceil(1.5)", "2" }, + { 0, "ceil(-0.5)", "0" }, + { 0, "ceil(-1.5)", "-1" }, + /* only simple cases because mpf_eq currently only works on whole limbs */ { 0, "eq(0xFFFFFFFFFFFFFFFF1111111111111111,0xFFFFFFFFFFFFFFFF2222222222222222,64)", "1" }, { 0, "eq(0xFFFFFFFFFFFFFFFF1111111111111111,0xFFFFFFFFFFFFFFFF2222222222222222,128)", "0" }, + + { 0, "floor(0)", "0" }, + { 0, "floor(0.25)", "0" }, + { 0, "floor(0.5)", "0" }, + { 0, "floor(1.5)", "1" }, + { 0, "floor(-0.5)", "-1" }, + { 0, "floor(-1.5)", "-2" }, + + { 0, "trunc(0)", "0" }, + { 0, "trunc(0.25)", "0" }, + { 0, "trunc(0.5)", "0" }, + { 0, "trunc(1.5)", "1" }, + { 0, "trunc(-0.5)", "0" }, + { 0, "trunc(-1.5)", "-1" }, + }; const struct data_t data_f[] = { @@ -222,44 +249,115 @@ const struct data_t data_f[] = { const struct data_t data_r[] = { { 16, "1@10", "1099511627776" }, - { 0, "pi", "" }, - { 0, "2*pi", "" }, - { 0, "log2", "" }, - { 0, "log2+1", "" }, + { 0, "euler", "" }, + { 0, "euler+1", "" }, - { 0, "pi()", NULL }, - { 0, "2 + pi() * 4", NULL }, + { 0, "loge2", "" }, + { 0, "loge2+1", "" }, - { 0, "sin(0)", "~0" }, - { 0, "sin(pi/2)", "~1" }, - { 0, "sin(pi)", "~0" }, - { 0, "sin(3*pi/2)","~-1" }, - { 0, "sin(2*pi)", "~0" }, + { 0, "pi", "" }, + { 0, "2*pi", "" }, + { 0, "pi()", NULL }, + { 0, "2 + pi() * 4", NULL }, - { 0, "cos(0)", "~1" }, - { 0, "cos(pi/2)", "~0" }, - { 0, "cos(pi)", "~-1" }, - { 0, "cos(3*pi/2)","~0" }, - { 0, "cos(2*pi)", "~1" }, + { 0, "acos(0)-pi/2", "~0" }, + { 0, "acos(1)", "0" }, - { 0, "inf_p(1/0)", "1" }, - { 0, "nan_p(1/0)", "0" }, - { 0, "number_p(1/0)", "0" }, + { 0, "agm(0,0)", "0" }, + { 0, "agm(1,1)", "1" }, - { 0, "inf_p(sqrt(-1))", "0" }, - { 0, "nan_p(sqrt(-1))", "1" }, - { 0, "number_p(sqrt(-1))", "0" }, + { 0, "asin(0)", "0" }, + { 0, "asin(1)-pi/2", "~0" }, + + { 0, "atan(0)", "0" }, + { 0, "atan(1)-pi/4", "~0" }, + { 0, "atan(-1)+pi/4", "~0" }, + + { 0, "cos(0)", "1" }, + { 0, "cos(pi/2)", "~0" }, + { 0, "cos(pi)", "~-1" }, + { 0, "cos(3*pi/2)", "~0" }, + { 0, "cos(2*pi)", "~1" }, - { 0, "inf_p(1)", "0" }, - { 0, "nan_p(1)", "0" }, - { 0, "number_p(1)", "1" }, + { 0, "cosh(0)", "1" }, - { 0, "inf_p(-1)", "0" }, - { 0, "nan_p(-1)", "0" }, - { 0, "number_p(-1)", "1" }, + { 0, "dim(0,0)", "0" }, + { 0, "dim(2,0)", "2" }, + { 0, "dim(3,1)", "2" }, + { 0, "dim(1,3)", "0" }, + { 0, "dim(-2,0)", "0" }, + { 0, "dim(-3,-1)", "0" }, + { 0, "dim(-1,-3)", "2" }, { 0, "eq(0xFF,0xF0,4)", "1" }, { 0, "eq(0xFF,0xF0,5)", "0" }, + + { 0, "exp(0)", "1" }, + { 0, "expm1(0)", "0" }, + + { 0, "fma(2,3,4)", "10" }, + { 0, "fma(-2,3,4)", "-2" }, + { 0, "fma(2,-3,4)", "-2" }, + { 0, "fma(2,-3,-4)", "-10" }, + + { 0, "hypot(3,4)", "5" }, + + { 0, "inf_p(1)", "0" }, + { 0, "inf_p(-1)", "0" }, + { 0, "inf_p(1/0)", "1" }, + { 0, "inf_p(sqrt(-1))", "0" }, + { 0, "inf_p(1)", "0" }, + + { 0, "inf_p(log(0))", "1" }, + { 0, "log(1)", "~0" }, + + { 0, "inf_p(log2(0))", "1" }, + { 0, "log2(1)", "0" }, + { 0, "log2(2)", "1" }, + { 0, "log2(4)", "2" }, + { 0, "log2(8)", "3" }, + + { 0, "inf_p(log10(0))", "1" }, + { 0, "log10(1)", "0" }, +/* { 0, "log10(10)", "1" }, */ +/* { 0, "log10(100)", "2" }, */ +/* { 0, "log10(1000)", "3" }, */ + + { 0, "log1p(0)", "0" }, + + { 0, "nan_p(-1)", "0" }, + { 0, "nan_p(1/0)", "0" }, + { 0, "nan_p(sqrt(-1))", "1" }, + { 0, "nan_p(1)", "0" }, + + { 0, "number_p(-1)", "1" }, + { 0, "number_p(1/0)", "0" }, + { 0, "number_p(sqrt(-1))", "0" }, + { 0, "number_p(1)", "1" }, + + { 0, "round(0)", "0" }, + { 0, "round(0.25)", "0" }, + { 0, "round(0.5)", "1" }, + { 0, "round(1.5)", "2" }, + { 0, "round(-0.5)", "-1" }, + { 0, "round(-1.5)", "-2" }, + + { 0, "sin(0)", "0" }, + { 0, "sin(pi/2)", "~1" }, + { 0, "sin(pi)", "~0" }, + { 0, "sin(3*pi/2)", "~-1" }, + { 0, "sin(2*pi)", "~0" }, + + { 0, "sinh(0)", "0" }, + + { 0, "tan(0)", "0" }, + { 0, "tan(pi/4)", "~1" }, +/* { 0, "tan(3*pi/4)", "~-1" }, */ + { 0, "tan(pi)", "~0" }, + { 0, "tan(5*pi/4)", "~1" }, +/* { 0, "tan(7*pi/4)", "~-1" }, */ + + { 0, "tan(0)", "0" }, }; struct datalist_t { @@ -274,6 +372,7 @@ struct datalist_t list_z[] = { DATALIST (data_zq), DATALIST (data_zfr), DATALIST (data_zqfr), + DATALIST (data_zr), }; struct datalist_t list_q[] = { @@ -292,6 +391,7 @@ struct datalist_t list_f[] = { struct datalist_t list_r[] = { DATALIST (data_zfr), DATALIST (data_zqfr), + DATALIST (data_zr), DATALIST (data_fr), DATALIST (data_r), }; |