=================================================================== RCS file: /home/cvs/OpenXM_contrib/gnuplot/Attic/standard.c,v retrieving revision 1.1.1.2 retrieving revision 1.1.1.3 diff -u -p -r1.1.1.2 -r1.1.1.3 --- OpenXM_contrib/gnuplot/Attic/standard.c 2000/01/22 14:16:02 1.1.1.2 +++ OpenXM_contrib/gnuplot/Attic/standard.c 2003/09/15 07:09:26 1.1.1.3 @@ -1,5 +1,5 @@ #ifndef lint -static char *RCSid = "$Id: standard.c,v 1.1.1.2 2000/01/22 14:16:02 maekawa Exp $"; +static char *RCSid = "$Id: standard.c,v 1.1.1.3 2003/09/15 07:09:26 ohara Exp $"; #endif /* GNUPLOT - standard.c */ @@ -572,13 +572,16 @@ register double x, y; /* real result */ push( Gcomplex(&a,acos(x)/ang2rad,0.0) ); } else { - double alpha = sqrt((x + 1)*(x + 1) + y*y)/2 + sqrt((x - 1)*(x - 1) + y*y)/2; - double beta = sqrt((x + 1)*(x + 1) + y*y)/2 - sqrt((x - 1)*(x - 1) + y*y)/2; + double alpha = sqrt((x + 1) * (x + 1) + y * y) / 2 + + sqrt((x - 1) * (x - 1) + y * y) / 2; + double beta = sqrt((x + 1) * (x + 1) + y * y) / 2 + - sqrt((x - 1) * (x - 1) + y * y) / 2; if (beta > 1) beta = 1; /* Avoid rounding error problems */ else if (beta < -1) beta = -1; - push( Gcomplex(&a,acos(beta)/ang2rad, log(alpha + sqrt(alpha*alpha-1))/ang2rad)); + push( Gcomplex(&a, (y > 0? -1: 1)*acos(beta) / ang2rad, + log(alpha + sqrt(alpha*alpha-1)) / ang2rad)); } } @@ -686,9 +689,11 @@ register double alpha, beta, x, y; /* acosh(z) } else if (y == 0) { push( Gcomplex(&a, log(x+sqrt(x*x-1))/ang2rad, 0.0) ); } else { - alpha = sqrt((x + 1)*(x + 1) + y*y)/2 + sqrt((x - 1)*(x - 1) + y*y)/2; - beta = sqrt((x + 1)*(x + 1) + y*y)/2 - sqrt((x - 1)*(x - 1) + y*y)/2; - push( Gcomplex(&a, log(alpha + sqrt(alpha*alpha-1))/ang2rad, acos(beta)/ang2rad)); + alpha = sqrt((x + 1) * (x + 1) + y * y) / 2 + + sqrt((x - 1) * (x - 1) + y * y) / 2; + beta = sqrt((x + 1) * (x + 1) + y * y) / 2 + - sqrt((x - 1) * (x - 1) + y * y) / 2; + push( Gcomplex(&a, log(alpha + sqrt(alpha * alpha - 1)) / ang2rad, (y<0 ? -1 : 1) * acos(beta) / ang2rad)); } }