diff options
| author | Frank Warmerdam <warmerdam@pobox.com> | 2009-01-23 15:04:48 +0000 |
|---|---|---|
| committer | Frank Warmerdam <warmerdam@pobox.com> | 2009-01-23 15:04:48 +0000 |
| commit | 3e1894a311c8f604802559779b285dd44e6a6e3f (patch) | |
| tree | 60f455da5be799ee6451ac5a7b0ed9cc43810669 /src/biveval.c | |
| parent | 9491279ef52c951148e903f54dc21445cbcfa74c (diff) | |
| download | PROJ-3e1894a311c8f604802559779b285dd44e6a6e3f.tar.gz PROJ-3e1894a311c8f604802559779b285dd44e6a6e3f.zip | |
avoid use of static variables which interfere with reentrancy (#24)
git-svn-id: http://svn.osgeo.org/metacrs/proj/trunk@1511 4e78687f-474d-0410-85f9-8d5e500ac6b2
Diffstat (limited to 'src/biveval.c')
| -rw-r--r-- | src/biveval.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/biveval.c b/src/biveval.c index c0586cc7..d0f0e743 100644 --- a/src/biveval.c +++ b/src/biveval.c @@ -4,9 +4,7 @@ static const char SCCSID[]="@(#)biveval.c 4.4 93/06/12 GIE REL"; #endif # include <projects.h> # define NEAR_ONE 1.00001 - static projUV -w2, w; -static double ceval(struct PW_COEF *C, int n) { +static double ceval(struct PW_COEF *C, int n, projUV w, projUV w2) { double d=0, dd=0, vd, vdd, tmp, *c; int j; @@ -34,6 +32,7 @@ static double ceval(struct PW_COEF *C, int n) { } projUV /* bivariate Chebyshev polynomial entry point */ bcheval(projUV in, Tseries *T) { + projUV w2, w; projUV out; /* scale to +-1 */ w.u = ( in.u + in.u - T->a.u ) * T->b.u; @@ -44,8 +43,8 @@ bcheval(projUV in, Tseries *T) { } else { /* double evaluation */ w2.u = w.u + w.u; w2.v = w.v + w.v; - out.u = ceval(T->cu, T->mu); - out.v = ceval(T->cv, T->mv); + out.u = ceval(T->cu, T->mu, w, w2); + out.v = ceval(T->cv, T->mv, w, w2); } return out; } |
