]> SALOME platform Git repositories - tools/medcoupling.git/commitdiff
Salome HOME
cosmetics floating point fix bl/grandy_for_ever
authorBRUNO LATHUILIERE <bruno.lathuiliere@edf.fr>
Tue, 27 Feb 2024 13:37:49 +0000 (14:37 +0100)
committerBRUNO LATHUILIERE <bruno.lathuiliere@edf.fr>
Tue, 27 Feb 2024 13:37:49 +0000 (14:37 +0100)
src/INTERP_KERNEL/TransformedTriangle.hxx
src/INTERP_KERNEL/TransformedTriangleMath.cxx

index b2ce44315b46dc094fee85974a5c0290200539d3..14d3965971dcb9acac94607b62b5fa67de3fff79 100644 (file)
@@ -512,7 +512,7 @@ namespace INTERP_KERNEL
       if (std::fabs(t1+t2) < THRESHOLD_F*MULT_PREC_F)
         return false;
 
-    return (t1*t2 <= 0.0) && !epsilonEqual(t1,t2, (double)MULT_PREC_F);
+    return (t1*t2 <= 0.0) && !epsilonEqual(t1,t2, MULT_PREC_F);
   }
 
   inline bool TransformedTriangle::testFacetSurroundsSegment(const TriSegment seg, const TetraFacet facet) const
index 30ecbc62177b0bbeedeb32b0c4c04f991ce3c692..7b3eba4e819dfc4a1459bcbbfa5fd5bb8d742d37 100644 (file)
@@ -331,7 +331,7 @@ namespace INTERP_KERNEL
           {
             // this value will not be used - we set it to whatever
             LOG(6, "Triple product not calculated for corner " << corner );
-            _tripleProducts[corner] = -3.14159265;
+            _tripleProducts[corner] = std::nan("triplep");
             _validTP[corner] = false;
           }
         anglesForRows.clear();
@@ -390,11 +390,9 @@ namespace INTERP_KERNEL
     
     //? is this more stable? -> no subtraction
     //    return asin( dotProd / ( lenNormal * lenEdgeVec ) ) + 3.141592625358979 / 2.0;
-    double tmp=dotProd / ( lenNormal * lenEdgeVec );
-    tmp=std::max(tmp,-1.);
-    tmp=std::min(tmp,1.);
-    return atan(1.0)*4.0 - acos(tmp);
-
+    const double tmp=dotProd / ( lenNormal * lenEdgeVec );
+    const double safe_tmp=std::max(std::min(tmp,1.),-1.);
+    return M_PI - std::acos(safe_tmp);
   }
 
   /**