diff --git a/AMDiS/src/MathFunctions.h b/AMDiS/src/MathFunctions.h index 356bfa2027de69eb37f525ca8c441fcc835380e2..3daba46bc83ed2bf55a612aee4cc845cb9d9467e 100644 --- a/AMDiS/src/MathFunctions.h +++ b/AMDiS/src/MathFunctions.h @@ -16,8 +16,12 @@ namespace AMDiS { } //convert Phi1 to r - inline double Phi1ToR(double p1, double eps) { return atanh(1-2*p1)*eps/3; } + inline double Phi1ToR(double p1, double eps) { + return eps/3.0 * atanh( std::max(-1+1.e-14, std::min(1-1.e-14, 1-2*p1)) ); + } //convert Phi2 to r - inline double Phi2ToR(double p2, double eps) { return atanh(1+2*p2)*eps/3; } + inline double Phi2ToR(double p2, double eps) { + return eps/3.0 * atanh( std::max(-1+1.e-14, std::min(1-1.e-14, 1+2*p2) ); + } } #endif