From f9f8f3ac432cc7963d63bf53d469c9727a36a0dd Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Tue, 21 Oct 2014 20:55:16 +0000
Subject: [PATCH] fixes for VC2010

---
 Mesh/meshGFace.cpp        |  2 +-
 Mesh/meshGRegion.cpp      |  2 +-
 Numeric/JacobianBasis.cpp |  8 ++++----
 Numeric/MetricBasis.cpp   | 18 +++++++++---------
 4 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/Mesh/meshGFace.cpp b/Mesh/meshGFace.cpp
index cac622ed26..7780c81f61 100644
--- a/Mesh/meshGFace.cpp
+++ b/Mesh/meshGFace.cpp
@@ -156,7 +156,7 @@ public:
 	MEdge E = _gf->quadrangles[i]->getEdge(j);
 	SPoint2 p1, p2;
 	reparamMeshEdgeOnFace(E.getVertex(0),E.getVertex(1),_gf,p1,p2);
-	std::map<MEdge, MVertex *>::iterator it = _middle.find(E);
+	std::map<MEdge, MVertex *, Less_Edge>::iterator it = _middle.find(E);
 	std::map<MEdge, MVertex *, Less_Edge>::iterator it2 = eds.find(E);
 	m[j] = p1;
 	if (it == _middle.end() && it2 == eds.end()){
diff --git a/Mesh/meshGRegion.cpp b/Mesh/meshGRegion.cpp
index 9113a1a535..68990517ea 100644
--- a/Mesh/meshGRegion.cpp
+++ b/Mesh/meshGRegion.cpp
@@ -904,7 +904,7 @@ static bool modifyInitialMeshForTakingIntoAccountBoundaryLayers(GRegion *gr, spl
 
   // now treat the Wedges
   // we have to know the two target GFaces that are concerned with a GEdge
-  std::set<MEdge>::iterator ite =  edges.begin();
+  std::set<MEdge,Less_Edge>::iterator ite =  edges.begin();
   while(ite != edges.end()){
     MEdge e = *ite;
     MVertex *v1 = e.getVertex(0);
diff --git a/Numeric/JacobianBasis.cpp b/Numeric/JacobianBasis.cpp
index a874038d32..cb784333e1 100644
--- a/Numeric/JacobianBasis.cpp
+++ b/Numeric/JacobianBasis.cpp
@@ -25,7 +25,7 @@ void calcMapFromIdealElement(int type, T &gSMatX, T &gSMatY, T &gSMatZ)
       break;
     }
     default: {                                                // Tri, tet, prism: equilateral tri with side of length 1
-      static const double cTri[2] = {-1./std::sqrt(3), 2./std::sqrt(3)};
+      static const double cTri[2] = {-1./std::sqrt(3.), 2./std::sqrt(3.)};
       gSMatY.scale(cTri[1]);
       gSMatY.axpy(gSMatX, cTri[0]);
       break;
@@ -39,15 +39,15 @@ void calcMapFromIdealElement(int type, T &gSMatX, T &gSMatY, T &gSMatZ)
       gSMatZ.scale(2.);
       break;
     }
-    case TYPE_PYR: {                                          // Pyramid -> height sqrt(2)/2
+    case TYPE_PYR: {                                          // Pyramid -> height sqrt(2.)/2
       static const double cPyr = 1./sqrt(2.);
       gSMatZ.scale(cPyr);
       break;
     }
     case TYPE_TET:                                            // Tet: take into account (x, y) scaling to obtain regular tet
     {
-      static const double cTet[3] = {-3./2/std::sqrt(6),
-                                     -1./2/std::sqrt(2),
+      static const double cTet[3] = {-3./2/std::sqrt(6.),
+                                     -1./2/std::sqrt(2.),
                                      std::sqrt(1.5)};
       gSMatZ.scale(cTet[2]);
       gSMatZ.axpy(gSMatX, cTet[0]);
diff --git a/Numeric/MetricBasis.cpp b/Numeric/MetricBasis.cpp
index 877e9c4c1e..13b11cfbd9 100644
--- a/Numeric/MetricBasis.cpp
+++ b/Numeric/MetricBasis.cpp
@@ -758,8 +758,8 @@ void MetricBasis::interpolate(const MElement *el,
       // Comppute from tensor
       fullMatrix<double> metricTensor(3, 3);
       for (int k = 0; k < 3; ++k) {
-        static double fact1 = std::sqrt(6);
-        static double fact2 = std::sqrt(3);
+        static double fact1 = std::sqrt(6.);
+        static double fact2 = std::sqrt(3.);
         const int ki = k%2;
         const int kj = std::min(k+1, 2);
         metricTensor(k, k) = (*metric)(i, k+1)*fact1 + (*metric)(i, 0);
@@ -1040,7 +1040,7 @@ void MetricBasis::_computeRmax(
     p = std::sqrt(p);
     const double a = q/p;
     if (a > 1e4) {
-      RmaxLag = std::max(RmaxLag, std::sqrt((a - std::sqrt(3)) / (a + std::sqrt(3))));
+      RmaxLag = std::max(RmaxLag, std::sqrt((a - std::sqrt(3.)) / (a + std::sqrt(3.))));
     }
     else {
       const double tmpR = _R3Dsafe(a, jac(i)/p/p*jac(i)/p);
@@ -1119,7 +1119,7 @@ void MetricBasis::_computeTermBeta(double &a, double &K,
     x0 = 1;
     phip = M_PI / 3;
     term1 = 1 + .5 * a;
-    sin = std::sqrt(3) / 2;
+    sin = std::sqrt(3.) / 2;
     sqrt = 0;
   }
   else if (x0 < -1) {
@@ -1128,7 +1128,7 @@ void MetricBasis::_computeTermBeta(double &a, double &K,
     x0 = -1;
     phip = 2 * M_PI / 3;
     term1 = 1 - .5 * a;
-    sin = std::sqrt(3) / 2;
+    sin = std::sqrt(3.) / 2;
     sqrt = 0;
   }
   else {
@@ -1228,8 +1228,8 @@ void MetricBasis::_fillCoeff(int dim, const GradientBasis *gradients,
         const double dvxdY = dxdY*dxdY + dydY*dydY + dzdY*dzdY;
         const double dvxdZ = dxdZ*dxdZ + dydZ*dydZ + dzdZ*dzdZ;
         coeff(i, 0) = (dvxdX + dvxdY + dvxdZ) / 3;
-        static double fact1 = 1./std::sqrt(6);
-        static double fact2 = 1./std::sqrt(3);
+        static double fact1 = 1./std::sqrt(6.);
+        static double fact2 = 1./std::sqrt(3.);
         coeff(i, 1) = fact1 * (dvxdX - coeff(i, 0));
         coeff(i, 2) = fact1 * (dvxdY - coeff(i, 0));
         coeff(i, 3) = fact1 * (dvxdZ - coeff(i, 0));
@@ -1260,7 +1260,7 @@ double MetricBasis::_computeMinlagR(const fullVector<double> &jac,
       p = std::sqrt(p);
       const double a = q/p;
       if (a > 1e4) { // TODO: from _tol ?
-        Rmin = std::min(Rmin, std::sqrt((a - std::sqrt(3)) / (a + std::sqrt(3))));
+        Rmin = std::min(Rmin, std::sqrt((a - std::sqrt(3.)) / (a + std::sqrt(3.))));
       }
       else {
         const double tmpR = _R3Dsafe(a, jac(i)/p/p*jac(i)/p);
@@ -1554,7 +1554,7 @@ void MetricBasis::_maxKstAsharp(const fullMatrix<double> &coeff,
 double MetricBasis::_R3Dsafe(double q, double p, double J)
 {
   if (q > 1e5*p) {
-    const double m = p*std::sqrt(3)/q;
+    const double m = p*std::sqrt(3.)/q;
     return (1-m) / (1+m);
   }
   const double a = q/p;
-- 
GitLab