From d939cb5deb038edd2cd02c3bff8b925d1857b2ec Mon Sep 17 00:00:00 2001 From: Tom St Denis Date: Mon, 21 Jun 2004 21:52:03 +0000 Subject: [PATCH] added libtomfloat-0.02 --- changes.txt | 18 +++++++++-- demos/ex1.c | 26 +++++++++++++++- float.pdf | Bin 172888 -> 172528 bytes float.tex | 2 +- makefile | 6 ++-- mpf_add.c | 14 +++++++++ mpf_atan.c | 79 +++++++++++++++++++++++++++++++++++++++++++++++ mpf_const_ln_d.c | 14 +++++++++ mpf_cos.c | 11 +++++-- mpf_exp.c | 13 +++++--- mpf_invsqrt.c | 21 ++++++++----- mpf_ln.c | 66 +++++++++++++++++++++++++++++++++++++++ mpf_normalize.c | 17 ++++++++-- mpf_sin.c | 12 +++++-- mpf_sqrt.c | 17 ++++++---- mpf_sub.c | 16 +++++++++- tomfloat.h | 2 +- 17 files changed, 299 insertions(+), 35 deletions(-) diff --git a/changes.txt b/changes.txt index f77fc00..91dd844 100644 --- a/changes.txt +++ b/changes.txt @@ -1,3 +1,17 @@ -May 5th, 2004 v0.01 -- wrote base of LTF +June 21st, 2004 +v0.02 -- Added missing objects to the makefile [oops] + -- fixed up mpf_add and mpf_sub to be more reliable about the precision + -- added required limited ln function mpf_ln_l (domain 0 < x <= 2) + It's still incomplete as it converges slowly (and therefore yields incorrect results) + -- Added mpf_ln and mpf_atan + -- Added short-circuits to sin, cos, invsqrt, atan, ln and sqrt [huge speedup] + -- Optimized mpf_sqrt and mpf_invsqrt by using quick estimates. Fixed + circular dependency as well (mpf_sqrt requires mpf_invsqrt but not vice versa) + ++ Note: No further releases are planned for a while. I encourage interested + parties to fork this code base and extend it! + +May 5th, 2004 +v0.01 -- wrote base of LTF -Anytime v0.00 -- no LTF existed. +Anytime +v0.00 -- no LTF existed. diff --git a/demos/ex1.c b/demos/ex1.c index c186421..1bdc535 100644 --- a/demos/ex1.c +++ b/demos/ex1.c @@ -10,7 +10,9 @@ void draw(mp_float *a) int main(void) { mp_float a, b, c, d, e; - mpf_init_multi(96, &a, &b, &c, &d, &e, NULL); + int err; + + mpf_init_multi(100, &a, &b, &c, &d, &e, NULL); mpf_const_d(&a, 1); draw(&a); mpf_const_d(&b, 2); draw(&b); @@ -21,6 +23,12 @@ int main(void) mpf_sub(&b, &c, &e); printf("2 - 3 =="); draw(&e); mpf_mul(&b, &c, &e); printf("2 * 3 == "); draw(&e); mpf_div(&b, &c, &e); printf("2 / 3 == "); draw(&e); + mpf_add_d(&b, 3, &e); printf("2 + 3 == "); draw(&e); + mpf_sub_d(&b, 3, &e); printf("2 - 3 =="); draw(&e); + mpf_mul_d(&b, 3, &e); printf("2 * 3 == "); draw(&e); + mpf_div_d (&b, 3, &e); printf("2 / 3 == "); draw(&e); + mpf_const_d(&e, 0); mpf_add_d(&e, 1, &e); printf("0 + 1 == "); draw(&e); + mpf_const_d(&e, 0); mpf_sub_d(&e, 1, &e); printf("0 - 1 == "); draw(&e); printf("\n"); mpf_invsqrt(&d, &e); printf("1/sqrt(4) == 1/2 == "); draw(&e); mpf_invsqrt(&c, &e); printf("1/sqrt(3) == "); draw(&e); @@ -29,6 +37,8 @@ int main(void) mpf_inv(&c, &e); printf("1/3 == "); draw(&e); mpf_inv(&d, &e); printf("1/4 == "); draw(&e); printf("\n"); + mpf_const_pi(&e); printf("Pi == "); draw(&e); + printf("\n"); mpf_const_e(&e); printf("e == "); draw(&e); mpf_exp(&c, &e); printf("e^3 == "); draw(&e); mpf_sqrt(&e, &e); printf("sqrt(e^3) == "); draw(&e); @@ -46,7 +56,21 @@ int main(void) mpf_tan(&b, &e); printf("tan(2) == "); draw(&e); mpf_tan(&c, &e); printf("tan(3) == "); draw(&e); mpf_tan(&d, &e); printf("tan(4) == "); draw(&e); + mpf_inv(&a, &e); mpf_atan(&e, &e); printf("atan(1/1) == "); draw(&e); + mpf_inv(&b, &e); mpf_atan(&e, &e); printf("atan(1/2) == "); draw(&e); + mpf_inv(&c, &e); mpf_atan(&e, &e); printf("atan(1/3) == "); draw(&e); + mpf_inv(&d, &e); mpf_atan(&e, &e); printf("atan(1/4) == "); draw(&e); printf("\n"); + #define lntest(x) if ((err = mpf_const_ln_d(&e, x)) != MP_OKAY) { printf("Failed ln(%3d), %d\n", x, err); } else { printf("ln(%3d) == ", x); draw(&e); }; + lntest(0); + lntest(1); + lntest(2); + lntest(4); + lntest(8); + lntest(17); + lntest(1000); + lntest(100000); + lntest(250000); return 0; } diff --git a/float.pdf b/float.pdf index aab20d684d868433dc1ab47094fc13295dc094d6..54aad4638d81cefc864be2f0569714212ead0db3 100644 GIT binary patch delta 53252 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 delta 53564 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 WcYQ!C$O6ej04N+HEPP8>74l#7-Q2eT diff --git a/float.tex b/float.tex index 77c41d9..cec4b46 100644 --- a/float.tex +++ b/float.tex @@ -49,7 +49,7 @@ \begin{document} \frontmatter \pagestyle{empty} -\title{LibTomFloat User Manual \\ v0.01} +\title{LibTomFloat User Manual \\ v0.02} \author{Tom St Denis \\ tomstdenis@iahu.ca} \maketitle This text and the library are hereby placed in the public domain. This book has been formatted for B5 [176x250] paper using the \LaTeX{} {\em book} diff --git a/makefile b/makefile index b7fb98a..204c67c 100644 --- a/makefile +++ b/makefile @@ -6,7 +6,7 @@ default: libtomfloat.a CFLAGS += -Os -Wall -W -I./ -VERSION=0.01 +VERSION=0.02 #default files to install LIBNAME=libtomfloat.a @@ -24,7 +24,7 @@ DATAPATH=/usr/share/doc/libtomfloat/pdf OBJECTS = \ mpf_init.o mpf_clear.o mpf_init_multi.o mpf_clear_multi.o mpf_init_copy.o \ \ -mpf_copy.o mpf_exch.o \ +mpf_copy.o mpf_exch.o mpf_abs.o mpf_neg.o \ \ mpf_cmp.o mpf_cmp_d.o \ \ @@ -70,7 +70,7 @@ install: libtomfloat.a clean: rm -f $(OBJECTS) libtomfloat.a *~ demos/*.o demos/*~ ex1 - rm -f float.aux float.dvi float.log float.idx float.lof float.out float.toc + rm -f float.aux float.dvi float.log float.idx float.lof float.out float.toc float.ilg float.ind float.pdf zipup: clean manual cd .. ; rm -rf ltf* libtomfloat-$(VERSION) ; mkdir libtomfloat-$(VERSION) ; \ diff --git a/mpf_add.c b/mpf_add.c index f5b10c6..ec9be69 100644 --- a/mpf_add.c +++ b/mpf_add.c @@ -18,6 +18,20 @@ int mpf_add(mp_float *a, mp_float *b, mp_float *c) mp_float tmp, *other; long diff; + if (mpf_iszero(a)) { + diff = c->radix; + if ((err = mpf_copy(b, c)) != MP_OKAY) { + return err; + } + return mpf_normalize_to(c, diff); + } else if (mpf_iszero(b)) { + diff = c->radix; + if ((err = mpf_copy(a, c)) != MP_OKAY) { + return err; + } + return mpf_normalize_to(c, diff); + } + if (a->exp < b->exp) { /* tmp == a normalize to b's exp */ if ((err = mpf_init_copy(a, &tmp)) != MP_OKAY) { diff --git a/mpf_atan.c b/mpf_atan.c index 9417066..870f193 100644 --- a/mpf_atan.c +++ b/mpf_atan.c @@ -12,6 +12,85 @@ */ #include +/* y = y - (tan(y) - x)/(tan(y+0.1)-tan(x)) */ + int mpf_atan(mp_float *a, mp_float *b) { + mp_float oldval, tmp, tmpx, res, sqr; + int oddeven, ires, err, itts; + long n; + + /* ensure -1 <= a <= 1 */ + if ((err = mpf_cmp_d(a, -1, &ires)) != MP_OKAY) { + return err; + } + if (ires == MP_LT) { + return MP_VAL; + } + + if ((err = mpf_cmp_d(a, 1, &ires)) != MP_OKAY) { + return err; + } + if (ires == MP_GT) { + return MP_VAL; + } + + /* easy out if a == 0 */ + if (mpf_iszero(a) == MP_YES) { + return mpf_const_d(b, 1); + } + + /* now a != 0 */ + + /* initialize temps */ + if ((err = mpf_init_multi(b->radix, &oldval, &tmpx, &tmp, &res, &sqr, NULL)) != MP_OKAY) { + return err; + } + + /* initlialize temps */ + /* res = 0 */ + /* tmpx = 1/a */ + if ((err = mpf_inv(a, &tmpx)) != MP_OKAY) { goto __ERR; } + + /* sqr = a^2 */ + if ((err = mpf_sqr(a, &sqr)) != MP_OKAY) { goto __ERR; } + + /* this is the denom counter. Goes up by two per pass */ + n = 1; + + /* we alternate between adding and subtracting */ + oddeven = 0; + + /* get number of iterations */ + itts = mpf_iterations(b); + + while (itts-- > 0) { + if ((err = mpf_copy(&res, &oldval)) != MP_OKAY) { goto __ERR; } + + /* compute 1/(2n-1) */ + if ((err = mpf_const_d(&tmp, (2*n++ - 1))) != MP_OKAY) { goto __ERR; } + if ((err = mpf_inv(&tmp, &tmp)) != MP_OKAY) { goto __ERR; } + + /* now multiply a into tmpx twice */ + if ((err = mpf_mul(&tmpx, &sqr, &tmpx)) != MP_OKAY) { goto __ERR; } + + /* now multiply the two */ + if ((err = mpf_mul(&tmpx, &tmp, &tmp)) != MP_OKAY) { goto __ERR; } + + /* now depending on if this is even or odd we add/sub */ + oddeven ^= 1; + if (oddeven == 1) { + if ((err = mpf_add(&res, &tmp, &res)) != MP_OKAY) { goto __ERR; } + } else { + if ((err = mpf_sub(&res, &tmp, &res)) != MP_OKAY) { goto __ERR; } + } + + if (mpf_cmp(&oldval, &res) == MP_EQ) { + break; + } + } + mpf_exch(&res, b); +__ERR: mpf_clear_multi(&oldval, &tmpx, &tmp, &res, &sqr, NULL); + return err; + } diff --git a/mpf_const_ln_d.c b/mpf_const_ln_d.c index fbe7927..6ddf4e8 100644 --- a/mpf_const_ln_d.c +++ b/mpf_const_ln_d.c @@ -15,6 +15,20 @@ int mpf_const_ln_d(mp_float *a, long b) { int err; + + /* test input */ + if (b < 0) { + return MP_VAL; + } + + if (b == 0) { + return mpf_const_d(a, 1); + } + + if (b == 1) { + return mpf_const_d(a, 0); + } + if ((err = mpf_const_d(a, b)) != MP_OKAY) { return err; } diff --git a/mpf_cos.c b/mpf_cos.c index 421466c..09675b1 100644 --- a/mpf_cos.c +++ b/mpf_cos.c @@ -15,11 +15,11 @@ /* using cos x == \sum_{n=0}^{\infty} ((-1)^n/(2n)!) * x^2n */ int mpf_cos(mp_float *a, mp_float *b) { - mp_float tmpovern, tmp, tmpx, res, sqr; + mp_float oldval, tmpovern, tmp, tmpx, res, sqr; int oddeven, err, itts; long n; /* initialize temps */ - if ((err = mpf_init_multi(b->radix, &tmpx, &tmpovern, &tmp, &res, &sqr, NULL)) != MP_OKAY) { + if ((err = mpf_init_multi(b->radix, &oldval, &tmpx, &tmpovern, &tmp, &res, &sqr, NULL)) != MP_OKAY) { return err; } @@ -40,6 +40,7 @@ int mpf_cos(mp_float *a, mp_float *b) itts = mpf_iterations(b); while (itts-- > 0) { + if ((err = mpf_copy(&res, &oldval)) != MP_OKAY) { goto __ERR; } /* compute 1/(2n)! from 1/(2(n-1))! by multiplying by (1/n)(1/(n+1)) */ if ((err = mpf_const_d(&tmp, ++n)) != MP_OKAY) { goto __ERR; } if ((err = mpf_inv(&tmp, &tmp)) != MP_OKAY) { goto __ERR; } @@ -62,8 +63,12 @@ int mpf_cos(mp_float *a, mp_float *b) } else { if ((err = mpf_sub(&res, &tmp, &res)) != MP_OKAY) { goto __ERR; } } + + if (mpf_cmp(&res, &oldval) == MP_EQ) { + break; + } } mpf_exch(&res, b); -__ERR: mpf_clear_multi(&tmpx, &tmpovern, &tmp, &res, &sqr, NULL); +__ERR: mpf_clear_multi(&oldval, &tmpx, &tmpovern, &tmp, &res, &sqr, NULL); return err; } diff --git a/mpf_exp.c b/mpf_exp.c index f779aeb..ed2bb54 100644 --- a/mpf_exp.c +++ b/mpf_exp.c @@ -16,12 +16,12 @@ /* compute b = e^a using e^x == \sum_{n=0}^{\infty} {1 \over n!}x^n */ int mpf_exp(mp_float *a, mp_float *b) { - mp_float tmpx, tmpovern, tmp, res; + mp_float oldval, tmpx, tmpovern, tmp, res; int err, itts; long n; /* initialize temps */ - if ((err = mpf_init_multi(b->radix, &tmpx, &tmpovern, &tmp, &res, NULL)) != MP_OKAY) { + if ((err = mpf_init_multi(b->radix, &oldval, &tmpx, &tmpovern, &tmp, &res, NULL)) != MP_OKAY) { return err; } @@ -36,8 +36,9 @@ int mpf_exp(mp_float *a, mp_float *b) itts = mpf_iterations(b); while (itts-- > 0) { + if ((err = mpf_copy(&res, &oldval)) != MP_OKAY) { goto __ERR; } + /* compute 1/n! as 1/(n-1)! * 1/n */ -// hack: this won't be portable for n>127 if ((err = mpf_const_d(&tmp, n++)) != MP_OKAY) { goto __ERR; } if ((err = mpf_inv(&tmp, &tmp)) != MP_OKAY) { goto __ERR; } if ((err = mpf_mul(&tmp, &tmpovern, &tmpovern)) != MP_OKAY) { goto __ERR; } @@ -48,10 +49,14 @@ int mpf_exp(mp_float *a, mp_float *b) /* multiply and sum them */ if ((err = mpf_mul(&tmpovern, &tmpx, &tmp)) != MP_OKAY) { goto __ERR; } if ((err = mpf_add(&tmp, &res, &res)) != MP_OKAY) { goto __ERR; } + + if (mpf_cmp(&oldval, &res) == MP_EQ) { + break; + } } mpf_exch(&res, b); -__ERR: mpf_clear_multi(&tmpx, &tmpovern, &tmp, &res, NULL); +__ERR: mpf_clear_multi(&oldval, &tmpx, &tmpovern, &tmp, &res, NULL); return err; } diff --git a/mpf_invsqrt.c b/mpf_invsqrt.c index 67963b2..9566d06 100644 --- a/mpf_invsqrt.c +++ b/mpf_invsqrt.c @@ -15,7 +15,7 @@ /* using newtons method we have 1/sqrt(x) = Y_{n+1} = y_n * ((3 - xy^2_n)/2) */ int mpf_invsqrt(mp_float *a, mp_float *b) { - mp_float tmp1, tmp2, const_3; + mp_float oldval, tmp1, tmp2, const_3; int err, itts; /* ensure a is not zero or negative */ @@ -27,7 +27,7 @@ int mpf_invsqrt(mp_float *a, mp_float *b) itts = mpf_iterations(b); /* init temps */ - if ((err = mpf_init_multi(b->radix, &tmp1, &tmp2, &const_3, NULL)) != MP_OKAY) { + if ((err = mpf_init_multi(b->radix, &oldval, &tmp1, &tmp2, &const_3, NULL)) != MP_OKAY) { return err; } @@ -36,13 +36,13 @@ int mpf_invsqrt(mp_float *a, mp_float *b) /* tmp1 == reasonable guess at sqrt */ if ((err = mpf_copy(a, &tmp1)) != MP_OKAY) { goto __ERR; } - - /* negate exponent and halve */ - tmp1.radix = b->radix; - if ((err = mp_sqrt(&(tmp1.mantissa), &(tmp1.mantissa))) != MP_OKAY) { goto __ERR; } - if ((err = mpf_normalize(&tmp1)) != MP_OKAY) { goto __ERR; } + mp_rshd(&(tmp1.mantissa), tmp1.mantissa.used>>1); + if ((err = mpf_normalize_to(&tmp1, b->radix)) != MP_OKAY) { goto __ERR; } while (itts-- > 0) { + /* grap copy of tmp1 for early out */ + if ((err = mpf_copy(&tmp1, &oldval)) != MP_OKAY) { goto __ERR; } + /* first tmp2 = y^2 == tmp1^2 */ if ((err = mpf_sqr(&tmp1, &tmp2)) != MP_OKAY) { goto __ERR; } /* multiply by x, tmp1 * a */ @@ -53,10 +53,15 @@ int mpf_invsqrt(mp_float *a, mp_float *b) if ((err = mpf_div_2(&tmp2, &tmp2)) != MP_OKAY) { goto __ERR; } /* multiply by y_n and feedback */ if ((err = mpf_mul(&tmp1, &tmp2, &tmp1)) != MP_OKAY) { goto __ERR; } + + /* early out if stable */ + if (mpf_cmp(&oldval, &tmp1) == MP_EQ) { + break; + } } mpf_exch(&tmp1, b); -__ERR: mpf_clear_multi(&tmp1, &tmp2, &const_3, NULL); +__ERR: mpf_clear_multi(&oldval, &tmp1, &tmp2, &const_3, NULL); return err; } diff --git a/mpf_ln.c b/mpf_ln.c index 66ee656..6a71bec 100644 --- a/mpf_ln.c +++ b/mpf_ln.c @@ -12,6 +12,72 @@ */ #include +/* + +Using the newton approximation y1 = y - (e^y - x)/e^y + +Which converges quickly and we can reuse e^y so we only calc it once per loop + +*/ int mpf_ln(mp_float *a, mp_float *b) { + mp_float oldval, tmpey, tmpy, val; + int itts, err; + long k; + + /* ensure positive */ + if (a->mantissa.sign == MP_NEG) { + return MP_VAL; + } + + /* easy out for 0 */ + if (mpf_iszero(a) == MP_YES) { + return mpf_const_d(b, 1); + } + + /* initialize temps */ + if ((err = mpf_init_multi(b->radix, &oldval, &tmpey, &tmpy, &val, NULL)) != MP_OKAY) { + return err; + } + + /* initial guess */ + if ((err = mpf_const_e(&val)) != MP_OKAY) { goto __ERR; } + if ((err = mpf_sqr(&val, &val)) != MP_OKAY) { goto __ERR; } + if ((err = mpf_inv(&val, &tmpey)) != MP_OKAY) { goto __ERR; } + if ((err = mpf_copy(a, &tmpy)) != MP_OKAY) { goto __ERR; } + if ((err = mpf_normalize_to(&tmpy, b->radix)) != MP_OKAY) { goto __ERR; } + + /* divide out e's */ + k = 0; + while (mpf_cmp(&tmpy, &val) == MP_GT) { + ++k; + if ((err = mpf_mul(&tmpy, &tmpey, &tmpy)) != MP_OKAY) { goto __ERR; } + } + if ((err = mpf_const_d(&tmpy, k*2)) != MP_OKAY) { goto __ERR; } + + /* number of iterations */ + itts = mpf_iterations(b); + + while (itts--) { + if ((err = mpf_copy(&tmpy, &oldval)) != MP_OKAY) { goto __ERR; } + + /* get e^y and save it */ + if ((err = mpf_exp(&tmpy, &tmpey)) != MP_OKAY) { goto __ERR; } + + /* now compute e^y - x */ + if ((err = mpf_sub(&tmpey, a, &val)) != MP_OKAY) { goto __ERR; } + + /* now compute (e^y - x) / e^y */ + if ((err = mpf_div(&val, &tmpey, &val)) != MP_OKAY) { goto __ERR; } + + /* y = y - (e^y - x)/e^y */ + if ((err = mpf_sub(&tmpy, &val, &tmpy)) != MP_OKAY) { goto __ERR; } + + if (mpf_cmp(&tmpy, &oldval) == MP_EQ) { + break; + } + } + mpf_exch(&tmpy, b); +__ERR: mpf_clear_multi(&oldval, &tmpey, &tmpy, &val, NULL); + return err; } diff --git a/mpf_normalize.c b/mpf_normalize.c index 01ef423..0b7dab2 100644 --- a/mpf_normalize.c +++ b/mpf_normalize.c @@ -14,7 +14,9 @@ int mpf_normalize(mp_float *a) { - long cb, diff; + long cb, diff; + int err; + mp_digit c; /* sanity */ if (a->radix < 2) { @@ -25,7 +27,18 @@ int mpf_normalize(mp_float *a) if (cb > a->radix) { diff = cb - a->radix; a->exp += diff; - return mp_div_2d(&(a->mantissa), diff, &(a->mantissa), NULL); + + /* round it, add 1 after shift if diff-1'th bit is 1 */ + c = a->mantissa.dp[diff/DIGIT_BIT] & (1U<<(diff%DIGIT_BIT)); + if ((err = mp_div_2d(&(a->mantissa), diff, &(a->mantissa), NULL)) != MP_OKAY) { + return err; + } + + if (c != 0) { + return mp_add_d(&(a->mantissa), 1, &(a->mantissa)); + } else { + return MP_OKAY; + } } else if (cb < a->radix) { if (mp_iszero(&(a->mantissa)) == MP_YES) { return mpf_const_0(a); diff --git a/mpf_sin.c b/mpf_sin.c index e5d672d..934bf72 100644 --- a/mpf_sin.c +++ b/mpf_sin.c @@ -15,12 +15,12 @@ /* using sin x == \sum_{n=0}^{\infty} ((-1)^n/(2n+1)!) * x^(2n+1) */ int mpf_sin(mp_float *a, mp_float *b) { - mp_float tmpovern, tmp, tmpx, res, sqr; + mp_float oldval, tmpovern, tmp, tmpx, res, sqr; int oddeven, err, itts; long n; /* initialize temps */ - if ((err = mpf_init_multi(b->radix, &tmpx, &tmpovern, &tmp, &res, &sqr, NULL)) != MP_OKAY) { + if ((err = mpf_init_multi(b->radix, &oldval, &tmpx, &tmpovern, &tmp, &res, &sqr, NULL)) != MP_OKAY) { return err; } @@ -49,6 +49,8 @@ int mpf_sin(mp_float *a, mp_float *b) itts = mpf_iterations(b); while (itts-- > 0) { + if ((err = mpf_copy(&res, &oldval)) != MP_OKAY) { goto __ERR; } + /* compute 1/(2n)! from 1/(2(n-1))! by multiplying by (1/n)(1/(n+1)) */ if ((err = mpf_const_d(&tmp, ++n)) != MP_OKAY) { goto __ERR; } if ((err = mpf_inv(&tmp, &tmp)) != MP_OKAY) { goto __ERR; } @@ -71,8 +73,12 @@ int mpf_sin(mp_float *a, mp_float *b) } else { if ((err = mpf_sub(&res, &tmp, &res)) != MP_OKAY) { goto __ERR; } } + + if (mpf_cmp(&res, &oldval) == MP_EQ) { + break; + } } mpf_exch(&res, b); -__ERR: mpf_clear_multi(&tmpx, &tmpovern, &tmp, &res, &sqr, NULL); +__ERR: mpf_clear_multi(&oldval, &tmpx, &tmpovern, &tmp, &res, &sqr, NULL); return err; } diff --git a/mpf_sqrt.c b/mpf_sqrt.c index ddfb4b8..d120cec 100644 --- a/mpf_sqrt.c +++ b/mpf_sqrt.c @@ -15,7 +15,7 @@ /* compute using sqrt(x) = y_{n+1} = 0.5 * (y_{n} + x/y_{n}) */ int mpf_sqrt(mp_float *a, mp_float *b) { - mp_float tmp, res; + mp_float oldval, tmp, res; int err, itts; /* make sure it's positive */ @@ -24,31 +24,36 @@ int mpf_sqrt(mp_float *a, mp_float *b) } /* let's roll */ - if ((err = mpf_init_multi(b->radix, &tmp, &res, NULL)) != MP_OKAY) { + if ((err = mpf_init_multi(b->radix, &oldval, &tmp, &res, NULL)) != MP_OKAY) { return err; } /* get copy of a and make reasonable guestimte towards the sqrt */ if ((err = mpf_copy(a, &res)) != MP_OKAY) { goto __ERR; } - if ((err = mp_sqrt(&res.mantissa, &res.mantissa)) != MP_OKAY) { goto __ERR; } + mp_rshd(&(res.mantissa), res.mantissa.used >> 1); res.exp = res.exp / 2; - res.radix = b->radix; - if ((err = mpf_normalize(&res)) != MP_OKAY) { goto __ERR; } + if ((err = mpf_normalize_to(&res, b->radix)) != MP_OKAY) { goto __ERR; } /* number of iterations */ itts = mpf_iterations(b); while (itts--) { + if ((err = mpf_copy(&res, &oldval)) != MP_OKAY) { goto __ERR; } + /* compute x/res */ if ((err = mpf_div(a, &res, &tmp)) != MP_OKAY) { goto __ERR; } /* res + x/res */ if ((err = mpf_add(&res, &tmp, &res)) != MP_OKAY) { goto __ERR; } /* 0.5 * (res + x/res) */ if ((err = mpf_div_2(&res, &res)) != MP_OKAY) { goto __ERR; } + + if (mpf_cmp(&res, &oldval) == MP_EQ) { + break; + } } mpf_exch(&res, b); -__ERR: mpf_clear_multi(&tmp, &res, NULL); +__ERR: mpf_clear_multi(&oldval, &tmp, &res, NULL); return err; } diff --git a/mpf_sub.c b/mpf_sub.c index cf819c1..649bbb2 100644 --- a/mpf_sub.c +++ b/mpf_sub.c @@ -18,6 +18,20 @@ int mpf_sub(mp_float *a, mp_float *b, mp_float *c) mp_float tmp; long diff; + if (mpf_iszero(a)) { + diff = c->radix; + if ((err = mpf_neg(b, c)) != MP_OKAY) { + return err; + } + return mpf_normalize_to(c, diff); + } else if (mpf_iszero(b)) { + diff = c->radix; + if ((err = mpf_copy(a, c)) != MP_OKAY) { + return err; + } + return mpf_normalize_to(c, diff); + } + if (a->exp < b->exp) { /* tmp == a normalize to b's exp */ if ((err = mpf_init_copy(a, &tmp)) != MP_OKAY) { @@ -40,7 +54,7 @@ int mpf_sub(mp_float *a, mp_float *b, mp_float *c) diff = a->exp - tmp.exp; tmp.exp = a->exp; if ((err = mp_div_2d(&(tmp.mantissa), diff, (&tmp.mantissa), NULL)) != MP_OKAY) { goto __TMP; } - if ((err = mp_sub(&(a->mantissa), &(tmp.mantissa), &(c->mantissa))) != MP_OKAY) { goto __TMP; } + if ((err = mp_sub(&(a->mantissa), &(tmp.mantissa), &(c->mantissa))) != MP_OKAY) { goto __TMP; } c->exp = a->exp; } diff --git a/tomfloat.h b/tomfloat.h index a7c3af2..85cd8f0 100644 --- a/tomfloat.h +++ b/tomfloat.h @@ -34,7 +34,7 @@ int mpf_init_copy(mp_float *a, mp_float *b); int mpf_copy(mp_float *src, mp_float *dest); void mpf_exch(mp_float *a, mp_float *b); -/* maintainers */ +/* maintainers/misc */ int mpf_normalize(mp_float *a); int mpf_normalize_to(mp_float *a, long radix); int mpf_iterations(mp_float *a);