diff --git a/Fltk/Message.cpp b/Fltk/Message.cpp
index 82ef727087f2ebed09c1f9855e94d86169f46c2c..98dfd30234330058bdcad653d6a8dc636e080ee3 100644
--- a/Fltk/Message.cpp
+++ b/Fltk/Message.cpp
@@ -1,4 +1,4 @@
-// $Id: Message.cpp,v 1.88 2008-03-20 11:44:03 geuzaine Exp $
+// $Id: Message.cpp,v 1.89 2008-03-25 20:25:35 remacle Exp $
 //
 // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
 //
@@ -83,8 +83,8 @@ void Msg(int level, const char *fmt, ...)
                                           
   case DEBUG    :                         
   case DEBUG1   : str = DEBUG_STR; verb = 4; break ;
-  case DEBUG2   :                         
-  case DEBUG3   : str = WHITE_STR; verb = 4; break ;
+  case DEBUG2   :		     	  
+  case DEBUG3   : str = WHITE_STR; verb = 5; break ;
 
   default : return;
   }
diff --git a/Mesh/BDS.cpp b/Mesh/BDS.cpp
index 18d3d9b206bf38064a66c151e7ba0bdaf1cf7320..6a6ce748784a7a1ad27cb0a8367c45cf2a9df58d 100644
--- a/Mesh/BDS.cpp
+++ b/Mesh/BDS.cpp
@@ -1,4 +1,4 @@
-// $Id: BDS.cpp,v 1.104 2008-03-20 11:44:08 geuzaine Exp $
+// $Id: BDS.cpp,v 1.105 2008-03-25 20:25:35 remacle Exp $
 //
 // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
 //
@@ -240,39 +240,44 @@ BDS_Edge *BDS_Mesh::recover_edge(int num1, int num2, std::set<EdgeToRecover> *e2
   
   if(!p1 || !p2) throw;
 
-  Msg(DEBUG, "edge %d %d has to be recovered", num1, num2);
+  Msg(DEBUG2, "edge %d %d has to be recovered", num1, num2);
   
   int ix = 0;
   int ixMax = 300;
   while(1){
     std::vector<BDS_Edge*> intersected;
     std::list<BDS_Edge*>::iterator it = edges.begin();
+
+    bool selfIntersection = false;
+
     while(it != edges.end()){
       e = (*it);
       if(!e->deleted && e->p1 != p1 && e->p1 != p2 && e->p2 != p1 && e->p2 != p2)
-        if(Intersect_Edges_2d(e->p1->u, e->p1->v,
-                              e->p2->u, e->p2->v,
-                              p1->u, p1->v,
-                              p2->u, p2->v)){
-          // intersect
-          if(e2r && e2r->find(EdgeToRecover(e->p1->iD, e->p2->iD, 0)) != e2r->end()){
-            std::set<EdgeToRecover>::iterator itr1 = 
-              e2r->find(EdgeToRecover(e->p1->iD, e->p2->iD, 0));                    
-            std::set<EdgeToRecover>::iterator itr2 = 
-              e2r->find(EdgeToRecover(num1, num2, 0));
-            Msg(DEBUG2, "edge %d %d on model edge %d cannot be recovered because"
-                " it intersects %d %d on model edge %d", num1, num2, itr2->ge->tag(),
-                e->p1->iD, e->p2->iD, itr1->ge->tag());
-            // now throw a class that contains the diagnostic
-            not_recovered->insert(EdgeToRecover(num1, num2, itr2->ge));
-            not_recovered->insert(EdgeToRecover(e->p1->iD, e->p2->iD, itr1->ge));
-            ixMax = -1;
-          }
-          intersected.push_back(e);       
-        }
+	if(Intersect_Edges_2d(e->p1->u, e->p1->v,
+			      e->p2->u, e->p2->v,
+			      p1->u, p1->v,
+			      p2->u, p2->v)){
+	  // intersect
+	  if(e2r && e2r->find(EdgeToRecover(e->p1->iD, e->p2->iD, 0)) != e2r->end()){
+	    std::set<EdgeToRecover>::iterator itr1 = 
+	      e2r->find(EdgeToRecover(e->p1->iD, e->p2->iD, 0));		    
+	    std::set<EdgeToRecover>::iterator itr2 = 
+	      e2r->find(EdgeToRecover(num1, num2, 0));
+	    Msg(DEBUG2, "edge %d %d on model edge %d cannot be recovered because"
+		" it intersects %d %d on model edge %d", num1, num2, itr2->ge->tag(),
+		e->p1->iD, e->p2->iD, itr1->ge->tag());
+	    // now throw a class that contains the diagnostic
+	    not_recovered->insert(EdgeToRecover(num1, num2, itr2->ge));
+	    not_recovered->insert(EdgeToRecover(e->p1->iD, e->p2->iD, itr1->ge));
+	    selfIntersection = true;
+	  }
+	  intersected.push_back(e);	  
+	}
       ++it;
     }
 
+    if (selfIntersection)return 0;
+
 //   if(ix > 300){
 //     Msg(WARNING, "edge %d %d cannot be recovered after %d iterations, trying again",
 //        num1, num2, ix);      
@@ -283,11 +288,11 @@ BDS_Edge *BDS_Mesh::recover_edge(int num1, int num2, std::set<EdgeToRecover> *e2
     if(!intersected.size() || ix > 1000){
       BDS_Edge *eee = find_edge(num1, num2);
       if(!eee){
-        outputScalarField(triangles, "debugp.pos", 1);
-        outputScalarField(triangles, "debugr.pos", 0);
-        Msg(GERROR, "edge %d %d cannot be recovered at all, look at debugp.pos "
-            "and debugr.pos", num1, num2);
-        return 0;
+	outputScalarField(triangles, "debugp.pos", 1);
+	outputScalarField(triangles, "debugr.pos", 0);
+	Msg(DEBUG2, "edge %d %d cannot be recovered at all, look at debugp.pos "
+	    "and debugr.pos", num1, num2);
+	return 0;
       }
       return eee;
     }
diff --git a/Mesh/BackgroundMesh.cpp b/Mesh/BackgroundMesh.cpp
index 157a7f32ca3fe6b0607ba0ce82e156cccb6e35bd..e114a2be5388299ea6f5a8a727aa72d1b75ab719 100644
--- a/Mesh/BackgroundMesh.cpp
+++ b/Mesh/BackgroundMesh.cpp
@@ -1,4 +1,4 @@
-// $Id: BackgroundMesh.cpp,v 1.46 2008-03-21 22:17:48 geuzaine Exp $
+// $Id: BackgroundMesh.cpp,v 1.47 2008-03-25 20:25:35 remacle Exp $
 //
 // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
 //
@@ -190,8 +190,8 @@ double BGM_MeshSize(GEntity *ge, double U, double V, double X, double Y, double
 // also if CTX.mesh.constrained_bgmesh is true;
 bool Extend1dMeshIn2dSurfaces()
 {
-  if(GModel::current()->getFields()->background_field == -1) return true;
-  if(CTX.mesh.constrained_bgmesh) return true;
+  if(GModel::current()->getFields()->background_field!=-1)return false;
+  if(!CTX.mesh.constrained_bgmesh) return true;
   return false;
 }
 
diff --git a/Mesh/meshGFace.cpp b/Mesh/meshGFace.cpp
index 6503e7fdfa864125025a6fe32c41f0f9657c2b2d..a993a7c4e942f6815de4a13762d5f67a61ddad92 100644
--- a/Mesh/meshGFace.cpp
+++ b/Mesh/meshGFace.cpp
@@ -1,4 +1,4 @@
-// $Id: meshGFace.cpp,v 1.127 2008-03-20 11:44:08 geuzaine Exp $
+// $Id: meshGFace.cpp,v 1.128 2008-03-25 20:25:35 remacle Exp $
 //
 // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
 //
@@ -328,6 +328,7 @@ bool recover_medge(BDS_Mesh *m, GEdge *ge, std::set<EdgeToRecover> *e2r,
 
 bool gmsh2DMeshGenerator(GFace *gf, int RECUR_ITER, bool debug = true)
 {
+  BDS_GeomEntity CLASS_F (1, 2);
   typedef std::set<MVertex*> v_container;
   v_container all_vertices;
   std::map<int, MVertex*>numbered_vertices;
@@ -461,38 +462,35 @@ bool gmsh2DMeshGenerator(GFace *gf, int RECUR_ITER, bool debug = true)
     //      loop is the outer one)
     Msg(DEBUG1, "Meshing of the convex hull (%d points)", all_vertices.size());
     doc.MakeMeshWithPoints();
+    Msg(DEBUG1, "Meshing of the convex hull (%d points) done", all_vertices.size());
     
     for(int i = 0; i < doc.numPoints; i++){
       MVertex *here = (MVertex *)doc.points[i].data;
       int num = here->getNum();
+      GEntity *ge = here->onWhat();
       double U, V;
       if(num < 0){ // fake bbox points
         U = bb[-1 - num]->x();
         V = bb[-1 - num]->y();
       }
       else{
-        U = U_[num];
-        V = V_[num];
-      }
-      
-      BDS_Point *pp = m->add_point(num, U, V, gf);
-      
-      GEntity *ge = here->onWhat();
-      if(ge->dim() == 0){
-        pp->lcBGM() = BGM_MeshSize(ge, 0, 0, here->x(), here->y(), here->z());
-      }
-      else if(ge->dim() == 1){
-        double u;
-        here->getParameter(0,u);
-        pp->lcBGM() = BGM_MeshSize(ge, u, 0, here->x(), here->y(), here->z());
-      }
-      else
-        pp->lcBGM() = 1.e22;
-      
-      pp->lc() = pp->lcBGM();
+	U = U_[num];
+	V = V_[num];
+      }      
+       BDS_Point *pp = m->add_point(num, U, V, gf);
+//        if(ge->dim() == 0){
+//  	pp->lcBGM() = BGM_MeshSize(ge, 0, 0, here->x(), here->y(), here->z());
+//        }
+//        else if(ge->dim() == 1){
+//  	double u;
+//  	here->getParameter(0,u);
+//  	pp->lcBGM() = BGM_MeshSize(ge, u, 0, here->x(), here->y(), here->z());
+//        }
+//        else
+//  	pp->lcBGM() = 1.e22;      
+//        pp->lc() = pp->lcBGM();
     }
     
-    Msg(DEBUG1, "Meshing of the convex hull (%d points) done", all_vertices.size());
     
     for(int i = 0; i < doc.numTriangles; i++) {
       MVertex *V1 = (MVertex*)doc.points[doc.triangles[i].a].data;
@@ -501,107 +499,125 @@ bool gmsh2DMeshGenerator(GFace *gf, int RECUR_ITER, bool debug = true)
       m->add_triangle(V1->getNum(), V2->getNum(), V3->getNum());
     }
 
-    for(int ip = 0; ip < 4; ip++) delete bb[ip];
-  }
-
-  // Recover the boundary edges and compute characteristic lenghts
-  // using mesh edge spacing
-  BDS_GeomEntity CLASS_F (1, 2);
-  if(debug){
-    char name[245];
-    sprintf(name, "surface%d-initial-real.pos", gf->tag());
-    outputScalarField(m->triangles, name, 0);
-    sprintf(name, "surface%d-initial-param.pos", gf->tag());
-    outputScalarField(m->triangles, name, 1);
-  }
-
-  Msg(DEBUG1, "Recovering %d model Edges", edges.size());
 
-  // build a structure with all mesh edges that have to be
-  // recovered. If two of these edges intersect, then the 1D mesh have
-  // to be densified
-  std::set<EdgeToRecover> edgesToRecover;
-  std::set<EdgeToRecover> edgesNotRecovered;
-  it = edges.begin();
-  while(it != edges.end()){
-    if(!(*it)->isMeshDegenerated())
+    // Recover the boundary edges and compute characteristic lenghts
+    // using mesh edge spacing
+    if(debug){
+      char name[245];
+      sprintf(name, "surface%d-initial-real.pos", gf->tag());
+      outputScalarField(m->triangles, name, 0);
+      sprintf(name, "surface%d-initial-param.pos", gf->tag());
+      outputScalarField(m->triangles, name, 1);
+    }
+    
+    Msg(DEBUG1, "Recovering %d model Edges", edges.size());
+    
+    // build a structure with all mesh edges that have to be
+    // recovered. If two of these edges intersect, then the 1D mesh have
+    // to be densified
+    std::set<EdgeToRecover> edgesToRecover;
+    std::set<EdgeToRecover> edgesNotRecovered;
+    it = edges.begin();
+    while(it != edges.end()){
+      if(!(*it)->isMeshDegenerated())
+	recover_medge(m, *it, &edgesToRecover, &edgesNotRecovered, 1);
+      ++it;
+    }
+    it = emb_edges.begin();
+    while(it != emb_edges.end()){
       recover_medge(m, *it, &edgesToRecover, &edgesNotRecovered, 1);
-    ++it;
-  }
-  it = emb_edges.begin();
-  while(it != emb_edges.end()){
-    recover_medge(m, *it, &edgesToRecover, &edgesNotRecovered, 1);
-    ++it;
-  }
-
-  Msg(DEBUG1, "Recovering %d mesh Edges", edgesToRecover.size());
-
-  // effectively recover the medge
-  it = edges.begin();
-  while(it != edges.end()){
-    if(!(*it)->isMeshDegenerated()){
-      recover_medge(m, *it, &edgesToRecover, &edgesNotRecovered, 2);
+      ++it;
     }
-    ++it;
-  }
-
-  if (edgesNotRecovered.size()){
-    Msg(WARNING, ":-( There exists %d intersections in the 1d mesh",
-        edgesNotRecovered.size());
-    Msg(WARNING, "8-| Gmsh splits those edges and tries again");
-    std::list<GFace *> facesToRemesh;
-    remeshUnrecoveredEdges(edgesNotRecovered, facesToRemesh);
-    std::set<EdgeToRecover>::iterator itr = edgesNotRecovered.begin();
-    for (; itr != edgesNotRecovered.end(); ++itr){
-      int p1 = itr->p1;
-      int p2 = itr->p2;
-      int tag = itr->ge->tag();
-      Msg(WARNING, "MEdge %d %d in GEdge %d",p1,p2,tag);
+    
+    Msg(DEBUG1, "Recovering %d mesh Edges", edgesToRecover.size());
+    
+    // effectively recover the medge
+    it = edges.begin();
+    while(it != edges.end()){
+      if(!(*it)->isMeshDegenerated()){
+	recover_medge(m, *it, &edgesToRecover, &edgesNotRecovered, 2);
+      }
+      ++it;
     }
-    // delete the mesh
-    delete m;
-    delete [] U_;
-    delete [] V_;
-    if (RECUR_ITER < 10 && facesToRemesh.size() == 0)
-      return gmsh2DMeshGenerator(gf, RECUR_ITER+1, debug);
-    return false;
-  }
-  if(RECUR_ITER > 0)
-    Msg(WARNING, ":-) Gmsh was able to recover all edges after %d ITERATIONS",
-        RECUR_ITER);
-
-  //  Msg(INFO, "Boundary Edges recovered for surface %d",gf->tag());
-  // Look for an edge that is on the boundary for which one of the two
-  // neighbors has a negative number node. The other triangle is
-  // inside the domain and, because all edges were recovered,
-  // triangles inside the domain can be recovered using a simple
-  // recursive algorithm
-  {
-    std::list<BDS_Edge*>::iterator ite = m->edges.begin();
-    while (ite != m->edges.end()){
-      BDS_Edge *e = *ite;
-      if(e->g  && e->numfaces() == 2){
-        BDS_Point *oface[2];
-        e->oppositeof(oface);
-        if (oface[0]->iD < 0){
-          recur_tag(e->faces(1), &CLASS_F);
-          break;
-        }
-        else if (oface[1]->iD < 0){
-          recur_tag(e->faces(0), &CLASS_F);
-          break;
-        }
+    
+    if (edgesNotRecovered.size()){
+      Msg(WARNING, ":-( There exists %d intersections in the 1d mesh",
+	  edgesNotRecovered.size());
+      Msg(WARNING, "8-| Gmsh splits those edges and tries again");
+      std::list<GFace *> facesToRemesh;
+      remeshUnrecoveredEdges(edgesNotRecovered, facesToRemesh);
+      std::set<EdgeToRecover>::iterator itr = edgesNotRecovered.begin();
+      for (; itr != edgesNotRecovered.end(); ++itr){
+	int p1 = itr->p1;
+	int p2 = itr->p2;
+	int tag = itr->ge->tag();
+	Msg(WARNING, "MEdge %d %d in GEdge %d",p1,p2,tag);
       }
-      ++ite;
+      // delete the mesh
+      delete m;
+      delete [] U_;
+      delete [] V_;
+      if (RECUR_ITER < 10 && facesToRemesh.size() == 0)
+	return gmsh2DMeshGenerator(gf, RECUR_ITER+1, debug);
+      return false;
     }
+    if(RECUR_ITER > 0)
+      Msg(WARNING, ":-) Gmsh was able to recover all edges after %d ITERATIONS",
+	  RECUR_ITER);
+    
+    //  Msg(INFO, "Boundary Edges recovered for surface %d",gf->tag());
+    // Look for an edge that is on the boundary for which one of the two
+    // neighbors has a negative number node. The other triangle is
+    // inside the domain and, because all edges were recovered,
+    // triangles inside the domain can be recovered using a simple
+    // recursive algorithm
+    {
+      std::list<BDS_Edge*>::iterator ite = m->edges.begin();
+      while (ite != m->edges.end()){
+	BDS_Edge *e = *ite;
+	if(e->g  && e->numfaces() == 2){
+	  BDS_Point *oface[2];
+	  e->oppositeof(oface);
+	  if (oface[0]->iD < 0){
+	    recur_tag(e->faces(1), &CLASS_F);
+	    break;
+	  }
+	  else if (oface[1]->iD < 0){
+	    recur_tag(e->faces(0), &CLASS_F);
+	    break;
+	  }
+	}
+	++ite;
+      }
+    }
+    
+    it = emb_edges.begin();
+    while(it != emb_edges.end()){
+      recover_medge(m, *it, &edgesToRecover, &edgesNotRecovered, 2);
+      ++it;
+    }
+    // compute characteristic lengths at vertices    
+    Msg(DEBUG1, "Computing mesh size field at mesh vertices", edgesToRecover.size());
+    for(int i = 0; i < doc.numPoints; i++){
+      MVertex *here = (MVertex *)doc.points[i].data;
+      int num = here->getNum();
+      GEntity *ge = here->onWhat();
+      BDS_Point *pp = m->find_point(num);
+      if(ge->dim() == 0){
+ 	pp->lcBGM() = BGM_MeshSize(ge, 0, 0, here->x(), here->y(), here->z());
+      }
+      else if(ge->dim() == 1){
+ 	double u;
+ 	here->getParameter(0,u);
+ 	pp->lcBGM() = BGM_MeshSize(ge, u, 0, here->x(), here->y(), here->z());
+      }
+      else
+ 	pp->lcBGM() = 1.e22;      
+      pp->lc() = pp->lcBGM();
+    }
+    for(int ip = 0; ip < 4; ip++) delete bb[ip];
   }
 
-  it = emb_edges.begin();
-  while(it != emb_edges.end()){
-    recover_medge(m, *it, &edgesToRecover, &edgesNotRecovered, 2);
-    ++it;
-  }
-  
   // delete useless stuff
   std::list<BDS_Face*>::iterator itt = m->triangles.begin();
   while (itt != m->triangles.end()){
@@ -643,8 +659,10 @@ bool gmsh2DMeshGenerator(GFace *gf, int RECUR_ITER, bool debug = true)
 
   int nb_swap;
   // outputScalarField(m->triangles, "beforeswop.pos",1);
+  Msg(DEBUG1, "Delaunizing the initial mesh");
   gmshDelaunayizeBDS(gf, *m, nb_swap);
-  // outputScalarField(m->triangles, "afterswop.pos",0);
+  // outputScalarField(m->triangles, "afterswop.pos",0)
+  Msg(DEBUG1, "Starting to add internal points");
 
   // start mesh generation
   if(!AlgoDelaunay2D(gf)){
@@ -702,8 +720,8 @@ bool gmsh2DMeshGenerator(GFace *gf, int RECUR_ITER, bool debug = true)
   // BDS mesh is passed in order not to recompute local coordinates of
   // vertices
   if(AlgoDelaunay2D(gf)){
-    insertVerticesInFace(gf, m);
-    laplaceSmoothing(gf);
+    gmshBowyerWatson(gf);
+    //    laplaceSmoothing(gf);
   }
   else if (debug){
     char name[256];
@@ -1243,7 +1261,7 @@ bool gmsh2DMeshGeneratorPeriodic(GFace *gf, bool debug = true)
   }
   
   if (AlgoDelaunay2D(gf)){
-    insertVerticesInFace(gf, m);
+    gmshBowyerWatson(gf);
     laplaceSmoothing(gf);
   }
 
diff --git a/Mesh/meshGFaceDelaunayInsertion.cpp b/Mesh/meshGFaceDelaunayInsertion.cpp
index 0ec2b63f1220df463c7ec177e00426b625a3a42a..1c5e4b54c24bd5af561b97be8d04d7c0e2293d77 100644
--- a/Mesh/meshGFaceDelaunayInsertion.cpp
+++ b/Mesh/meshGFaceDelaunayInsertion.cpp
@@ -1,4 +1,4 @@
-// $Id: meshGFaceDelaunayInsertion.cpp,v 1.15 2008-03-20 11:44:08 geuzaine Exp $
+// $Id: meshGFaceDelaunayInsertion.cpp,v 1.16 2008-03-25 20:25:35 remacle Exp $
 //
 // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
 //
@@ -483,7 +483,67 @@ void _printTris(char *name, std::set<MTri3*, compareTri3Ptr> &AllTris,
   fclose (ff);
 }
 
-void insertVerticesInFace(GFace *gf, BDS_Mesh *bds)
+
+static void insertAPoint(GFace *gf, std::set<MTri3*,compareTri3Ptr>::iterator it, double center[2],double metric[3], 
+			 std::vector<double> &Us, std::vector<double> &Vs,
+			 std::vector<double> &vSizes, std::vector<double> &vSizesBGM,
+			 std::set<MTri3*,compareTri3Ptr> &AllTris){
+  MTri3 *worst = *it;
+  double uv[2];
+  MTriangle *base = worst->tri();
+  bool inside = invMapUV(worst->tri(), center, Us, Vs, uv, 1.e-8);
+  if (!inside && worst->getNeigh(0))
+    inside |= invMapUV(worst->getNeigh(0)->tri(), center, Us, Vs, uv, 1.e-8);
+  if (!inside && worst->getNeigh(1))
+    inside |= invMapUV(worst->getNeigh(1)->tri(), center, Us, Vs, uv, 1.e-8);
+  if (!inside && worst->getNeigh(2))
+    inside |= invMapUV(worst->getNeigh(2)->tri(), center, Us, Vs, uv, 1.e-8);
+  if (inside) {
+    // we use here local coordinates as real coordinates
+    // x,y and z will be computed hereafter
+    //	      Msg(INFO,"Point is inside");
+    GPoint p = gf->point(center[0], center[1]);
+    //    printf("the new point is %g %g\n",p.x(),p.y());
+    MVertex *v = new MFaceVertex(p.x(), p.y(), p.z(), gf, center[0], center[1]);
+    v->setNum(Us.size());
+    double lc1 = ((1. - uv[0] - uv[1]) * vSizes[worst->tri()->getVertex(0)->getNum()] + 
+		  uv[0] * vSizes [worst->tri()->getVertex(1)->getNum()] + 
+		  uv[1] * vSizes [worst->tri()->getVertex(2)->getNum()]); 
+    // double eigMetricSurface = gf->getMetricEigenvalue(SPoint2(center[0],center[1]));
+    double lc = BGM_MeshSize(gf,center[0],center[1],p.x(),p.y(),p.z());
+    vSizesBGM.push_back(lc);
+    vSizes.push_back(lc1);
+    Us.push_back(center[0]);
+    Vs.push_back(center[1]);
+    
+    if (!insertVertex(gf, v, center, worst, AllTris, vSizes, vSizesBGM, 
+		      Us, Vs, metric)) {
+      Msg(DEBUG2,"2D Delaunay : a cavity is not star shaped");
+      AllTris.erase(it);
+      worst->forceRadius(-1);
+      AllTris.insert(worst);		  
+      delete v;
+    }
+    else 
+      gf->mesh_vertices.push_back(v);
+  }
+  else {
+    Msg(DEBUG2,"Point %g %g is outside (%g %g , %g %g , %g %g) (metric %g %g %g)",
+	center[0], center[1],
+	Us[base->getVertex(0)->getNum()], 
+	Vs[base->getVertex(0)->getNum()], 
+	Us[base->getVertex(1)->getNum()], 
+	Vs[base->getVertex(1)->getNum()], 
+	Us[base->getVertex(2)->getNum()], 
+	Vs[base->getVertex(2)->getNum()], 
+	metric[0], metric[1], metric[2]);
+    AllTris.erase(it);
+    worst->forceRadius(0);
+    AllTris.insert(worst);
+  }
+}
+
+void gmshBowyerWatson(GFace *gf)
 {
   std::set<MTri3*,compareTri3Ptr> AllTris;
   std::vector<double> vSizes, vSizesBGM, Us, Vs;
@@ -493,7 +553,7 @@ void insertVerticesInFace(GFace *gf, BDS_Mesh *bds)
   // _printTris ("before.pos", AllTris, Us,Vs);
   int nbSwaps = edgeSwapPass(gf, AllTris, SWCR_DEL, Us, Vs, vSizes, vSizesBGM);
   // _printTris ("after2.pos", AllTris, Us,Vs);
-  Msg(DEBUG,"Delaunization of the initial mesh done (%d swaps)", nbSwaps);
+  Msg(DEBUG2,"Delaunization of the initial mesh done (%d swaps)", nbSwaps);
 
   int ITER = 0;
   while (1){
@@ -505,8 +565,8 @@ void insertVerticesInFace(GFace *gf, BDS_Mesh *bds)
     }
     else{
       if(ITER++ % 5000 == 0)
-        Msg(DEBUG,"%7d points created -- Worst tri radius is %8.3f",
-            vSizes.size(), worst->getRadius());
+	Msg(DEBUG1,"%7d points created -- Worst tri radius is %8.3f",
+	    vSizes.size(), worst->getRadius());
       double center[2],uv[2],metric[3],r2;
       if (worst->getRadius() < 0.5 * sqrt(2.0)) break;
       circUV(worst->tri(), Us, Vs, center, gf);
@@ -518,68 +578,143 @@ void insertVerticesInFace(GFace *gf, BDS_Mesh *bds)
                        Vs[base->getVertex(1)->getNum()] + 
                        Vs[base->getVertex(2)->getNum()]) / 3.};
       buildMetric(gf, pa, metric);
-      circumCenterMetric(worst->tri(), metric, Us, Vs, center, r2); 
-
-      bool inside = invMapUV(worst->tri(), center, Us, Vs, uv, 1.e-8);
-      if (!inside && worst->getNeigh(0))
-        inside |= invMapUV(worst->getNeigh(0)->tri(), center, Us, Vs, uv, 1.e-8);
-      if (!inside && worst->getNeigh(1))
-        inside |= invMapUV(worst->getNeigh(1)->tri(), center, Us, Vs, uv, 1.e-8);
-      if (!inside && worst->getNeigh(2))
-        inside |= invMapUV(worst->getNeigh(2)->tri(), center, Us, Vs, uv, 1.e-8);
-      if (inside) {
-        // we use here local coordinates as real coordinates
-        // x,y and z will be computed hereafter
-        //            Msg(INFO,"Point is inside");
-        GPoint p = gf->point(center[0], center[1]);
-        MVertex *v = new MFaceVertex(p.x(), p.y(), p.z(), gf, center[0], center[1]);
-        v->setNum(Us.size());
-        double lc1 = ((1. - uv[0] - uv[1]) * vSizes[worst->tri()->getVertex(0)->getNum()] + 
-                      uv[0] * vSizes [worst->tri()->getVertex(1)->getNum()] + 
-                      uv[1] * vSizes [worst->tri()->getVertex(2)->getNum()]); 
-        // double eigMetricSurface = gf->getMetricEigenvalue(SPoint2(center[0],center[1]));
-        double lc = BGM_MeshSize(gf,center[0],center[1],p.x(),p.y(),p.z());
-        vSizesBGM.push_back(lc);
-        vSizes.push_back(lc1);
-        Us.push_back(center[0]);
-        Vs.push_back(center[1]);
-        
-        if (!insertVertex(gf, v, center, worst, AllTris, vSizes, vSizesBGM, 
-                          Us, Vs, metric)) {
-          Msg(DEBUG,"2D Delaunay : a cavity is not star shaped");
-          AllTris.erase(AllTris.begin());
-          worst->forceRadius(-1);
-          AllTris.insert(worst);                  
-          delete v;
-        }
-        else 
-          gf->mesh_vertices.push_back(v);
-      }
-      else {
-        Msg(DEBUG,"Point %g %g is outside (%g %g , %g %g , %g %g) (metric %g %g %g)",
-            center[0], center[1],
-            Us[base->getVertex(0)->getNum()], 
-            Vs[base->getVertex(0)->getNum()], 
-            Us[base->getVertex(1)->getNum()], 
-            Vs[base->getVertex(1)->getNum()], 
-            Us[base->getVertex(2)->getNum()], 
-            Vs[base->getVertex(2)->getNum()], 
-            metric[0], metric[1], metric[2]);
-        AllTris.erase(AllTris.begin());
-        worst->forceRadius(0);
-        AllTris.insert(worst);
-      }
+      circumCenterMetric(worst->tri(), metric, Us, Vs, center, r2);       
+      insertAPoint(gf,AllTris.begin(),center,metric,Us,Vs,vSizes,vSizesBGM,AllTris);
     }
   }    
-  for (int i=0;i<10;i++){
-    //  bool splits = edgeSplitPass(1.4, gf, AllTris, SPCR_ALLWAYS, Us, Vs, vSizes, vSizesBGM);
-    //  edgeSwapPass(gf, AllTris, SWCR_QUAL, Us, Vs, vSizes, vSizesBGM);
-    //  bool collapses = edgeCollapsePass(0.67, gf, AllTris, Us, Vs, vSizes, vSizesBGM);
-    //  edgeSwapPass(gf, AllTris, SWCR_QUAL, Us, Vs, vSizes, vSizesBGM);
-    //  if (!collapses && !splits) break;
+  transferDataStructure(gf, AllTris); 
+}
+
+/*
+  Let's try a frontal delaunay approach now that the delaunay mesher is stable
+
+  We use the approach of Rebay (JCP 1993) that we extend to anisotropic metrics
+
+  The point isertion is done on the Voronoi Edges
+  
+*/
+
+static bool isActive ( MTri3 *t , double limit_, int &active){
+  if (t->isDeleted()) return false;
+  for (active=0;active<3;active++){
+    MTri3 *neigh = t->getNeigh(active);
+    if (!neigh || neigh->getRadius() < limit_)return true;
   }
+  return false;
+}
+
+static double length_metric ( const double p[2], const double q[2], const double metric[3])
+{
+  return sqrt (   (p[0]-q[0]) * metric [0] * (p[0]-q[0]) +
+		2*(p[0]-q[0]) * metric [1] * (p[1]-q[1]) +
+		  (p[1]-q[1]) * metric [2] * (p[1]-q[1]) );
+}
+
+/*
+          /|
+         / |
+        /  |
+       /   |
+   lc /    |  r
+     /     |
+    /      |  
+   /       x
+  /        |    
+ /         |  r/2
+/          |  
+-----------+
+     lc/2
+
+     (3 r/2)^2 = lc^2 - lc^2/4 
+     -> lc^2 3/4 = 9r^2/4
+     -> lc^2 = 3 r^2
+
+     r^2 /4 + lc^2/4 = r^2
+     -> lc^2 = 3 r^2
+     
+*/
+
+
+void gmshBowyerWatson2(GFace *gf){
+//void gmshFrontalDelaunay (GFace *gf){
+  std::set<MTri3*,compareTri3Ptr> AllTris;
+  std::vector<double> vSizes, vSizesBGM, Us, Vs;
+  buidMeshGenerationDataStructures(gf, AllTris, vSizes, vSizesBGM, Us, Vs);
+
+  // delaunise the initial mesh
+  int nbSwaps = edgeSwapPass(gf, AllTris, SWCR_DEL, Us, Vs, vSizes, vSizesBGM);
+  Msg(DEBUG2,"Delaunization of the initial mesh done (%d swaps)", nbSwaps);
   
-  //_printTris ("yo.pos", AllTris, Us, Vs);
+  const double LIMIT_ = 0.5 * sqrt(2.0);
+
+  // insert points
+  int ITER = 0, active_edge;
+  while (1){
+    MTri3 *worst = 0;
+    std::set<MTri3*,compareTri3Ptr>::iterator it = AllTris.begin();
+    for ( ; it!=AllTris.end();++it){
+      if ((*it)->isDeleted()){
+ 	delete (*it)->tri();
+ 	delete (*it);
+ 	AllTris.erase(it++);
+      }
+      else if(isActive(*it,LIMIT_,active_edge)) worst = *it;
 
+      if (worst)break;
+    }
+    
+    if (!worst ||worst->getRadius() < LIMIT_) break;
+
+    // compute circum center of that guy
+    double center[2],uv[2],metric[3],r2;
+    MTriangle *base = worst->tri();
+    circUV(base, Us, Vs, center, gf);
+    double pa[2] = {(Us[base->getVertex(0)->getNum()] + 
+		     Us[base->getVertex(1)->getNum()] + 
+		     Us[base->getVertex(2)->getNum()]) / 3.,
+		    (Vs[base->getVertex(0)->getNum()] + 
+		     Vs[base->getVertex(1)->getNum()] + 
+		     Vs[base->getVertex(2)->getNum()]) / 3.};
+    buildMetric(gf, pa, metric);
+    circumCenterMetric(worst->tri(), metric, Us, Vs, center, r2); 
+    // compute the middle point of the edge
+    int ip1 = active_edge - 1 < 0 ? 2 : active_edge - 1;
+    int ip2 = active_edge;
+//     printf("the active edge is %d : %g %g -> %g %g\n",active_edge,base->getVertex(ip1)->x(),base->getVertex(ip1)->y(),
+// 	   base->getVertex(ip2)->x(),base->getVertex(ip2)->y());
+    double P[2] =  {Us[base->getVertex(ip1)->getNum()],  
+		    Vs[base->getVertex(ip1)->getNum()]};
+    double Q[2] =  {Us[base->getVertex(ip2)->getNum()], 
+		    Vs[base->getVertex(ip2)->getNum()]};
+    double midpoint[2] =  {0.5*(P[0]+Q[0]),0.5*(P[1]+Q[1])};
+
+    // now we have the edge center and the center of the circumcircle, 
+    // we try to find a point that would produce a perfect triangle while
+    // connecting the 2 points of the active edge
+
+    const double p    = 0.5*length_metric (P,Q,metric);
+    const double q    = length_metric (center,midpoint,metric);
+    const double rhoM = 0.5 * (vSizes[base->getVertex(ip1)->getNum()] + vSizes[base->getVertex(ip2)->getNum()] ) / sqrt(3);
+
+    //    printf("%g vs %g\n",2*p,rhoM);
+
+    //    const double rhoM_hat = std::max(rhoM,2*p);
+    const double rhoM_hat = std::min(std::max(rhoM,p),(p*p+q*q)/(2*q));
+    const double d = rhoM_hat + sqrt (rhoM_hat*rhoM_hat - p*p);
+    double dir[2] = {center[0]-midpoint[0],center[1]-midpoint[1]};
+    double L = sqrt(dir[0]*dir[0]+dir[1]*dir[1]);
+    double newPoint[2] = 
+      {
+	midpoint[0] + d * dir[0]/L,
+	midpoint[1] + d * dir[1]/L
+      };
+
+    //    printf("%g %g -- %g %g -- %g %g\n",midpoint[0],midpoint[1],pa[0],pa[1],newPoint[0],newPoint[1]);
+    
+    //    char name[245];
+    //    sprintf(name,"pt%d.pos",ITER++);
+    insertAPoint(gf,it,newPoint,metric,Us,Vs,vSizes,vSizesBGM,AllTris);
+  } 
+  _printTris ("frontal.pos", AllTris, Us,Vs);
   transferDataStructure(gf, AllTris); 
-}
+} 
diff --git a/Mesh/meshGFaceDelaunayInsertion.h b/Mesh/meshGFaceDelaunayInsertion.h
index fc956acee6bd187c6e7d3e32caf90864870396fd..b89fd0e69103ca2f30344beb685fbb4a941f9316 100644
--- a/Mesh/meshGFaceDelaunayInsertion.h
+++ b/Mesh/meshGFaceDelaunayInsertion.h
@@ -105,7 +105,7 @@ public:
 void connectTriangles(std::list<MTri3*> &);
 void connectTriangles(std::vector<MTri3*> &);
 void connectTriangles(std::set<MTri3*,compareTri3Ptr> &AllTris);
-void insertVerticesInFace(GFace *gf, BDS_Mesh *);
+void gmshBowyerWatson(GFace *gf);
 
 struct edgeXface
 {
diff --git a/Mesh/meshGFaceOptimize.cpp b/Mesh/meshGFaceOptimize.cpp
index 394f8db7f77aece0f37c3ce98c064459535dbb0a..8b4da9c86e2202fa6396afb5a6ca6e413f4aed3e 100644
--- a/Mesh/meshGFaceOptimize.cpp
+++ b/Mesh/meshGFaceOptimize.cpp
@@ -1,4 +1,4 @@
-// $Id: meshGFaceOptimize.cpp,v 1.13 2008-03-20 11:44:08 geuzaine Exp $
+// $Id: meshGFaceOptimize.cpp,v 1.14 2008-03-25 20:25:35 remacle Exp $
 //
 // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
 //
@@ -28,14 +28,14 @@
 #include "MElement.h"
 #include "BackgroundMesh.h"
 
-static void setLcsMax(MTriangle *t, std::map<MVertex*, double> &vSizes)
+static void setLcsInit(MTriangle *t, std::map<MVertex*, double> &vSizes)
 {
   for (int i = 0; i < 3; i++){
     for (int j = i + 1; j < 3; j++){
       MVertex *vi = t->getVertex(i);
       MVertex *vj = t->getVertex(j);
-      vSizes[vi] = 1.e12;
-      vSizes[vj] = 1.e12;
+      vSizes[vi] = -1;
+      vSizes[vj] = -1;
     }
   }
 }
@@ -50,14 +50,28 @@ static void setLcs(MTriangle *t, std::map<MVertex*,double> &vSizes)
       double dy = vi->y()-vj->y();
       double dz = vi->z()-vj->z();
       double l = sqrt(dx * dx + dy * dy + dz * dz);
-      std::map<MVertex*,double>::iterator iti = vSizes.find(vi);          
-      std::map<MVertex*,double>::iterator itj = vSizes.find(vj);          
-      if (iti->second > l) iti->second = l;
-      if (itj->second > l) itj->second = l;
+      std::map<MVertex*,double>::iterator iti = vSizes.find(vi);	  
+      std::map<MVertex*,double>::iterator itj = vSizes.find(vj);	  
+      if (iti->second < 0 || iti->second < l) iti->second = l;
+      if (itj->second < 0 || itj->second < l) itj->second = l;
     }
   }
 }
 
+static void setLcs(MLine *t, std::map<MVertex*,double> &vSizes)
+{
+  MVertex *vi = t->getVertex(0);
+  MVertex *vj = t->getVertex(1);
+  double dx = vi->x()-vj->x();
+  double dy = vi->y()-vj->y();
+  double dz = vi->z()-vj->z();
+  double l = sqrt(dx * dx + dy * dy + dz * dz);
+  std::map<MVertex*,double>::iterator iti = vSizes.find(vi);	  
+  std::map<MVertex*,double>::iterator itj = vSizes.find(vj);	  
+  if (iti->second < 0 || iti->second < l) iti->second = l;
+  if (itj->second < 0 || itj->second < l) itj->second = l;
+}
+
 void buidMeshGenerationDataStructures(GFace *gf, std::set<MTri3*, compareTri3Ptr> &AllTris,
                                       std::vector<double> &vSizes,
                                       std::vector<double> &vSizesBGM,
@@ -65,10 +79,23 @@ void buidMeshGenerationDataStructures(GFace *gf, std::set<MTri3*, compareTri3Ptr
                                       std::vector<double> &Vs)
 {
   std::map<MVertex*, double> vSizesMap;
+  std::list<GEdge*> edges = gf->edges();
+
   for (unsigned int i = 0;i < gf->triangles.size(); i++)
-    setLcsMax(gf->triangles[i], vSizesMap);
-  for (unsigned int i = 0;i < gf->triangles.size(); i++)
-    setLcs(gf->triangles[i], vSizesMap);
+    setLcsInit(gf->triangles[i], vSizesMap);
+
+  std::list<GEdge*>::iterator it = edges.begin();
+  while (it != edges.end()){
+    GEdge *ge = *it ;
+    for (int i=0;i<ge->lines.size();i++){
+      setLcs(ge->lines[i], vSizesMap);      
+    }
+    ++it;
+  }
+
+  //  for (unsigned int i = 0;i < gf->triangles.size(); i++)
+  //    setLcs(gf->triangles[i], vSizesMap);
+
   int NUM = 0;
   for (std::map<MVertex*, double>::iterator it = vSizesMap.begin();
        it != vSizesMap.end(); ++it){
diff --git a/Plugin/GSHHS.cpp b/Plugin/GSHHS.cpp
index 468cb2118d99be230efbedd1f6b04ef0e1c39a1e..4f26ae0ccccfea48b3627ca722b32ec8ed4271df 100644
--- a/Plugin/GSHHS.cpp
+++ b/Plugin/GSHHS.cpp
@@ -1,4 +1,4 @@
-// $Id: GSHHS.cpp,v 1.5 2008-03-21 18:27:38 geuzaine Exp $
+// $Id: GSHHS.cpp,v 1.6 2008-03-25 20:25:35 remacle Exp $
 //
 // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
 //
@@ -30,7 +30,7 @@
 extern Context_T CTX;
 
 // ************** GSHHS ************** 
-/*      $Id: GSHHS.cpp,v 1.5 2008-03-21 18:27:38 geuzaine Exp $
+/*      $Id: GSHHS.cpp,v 1.6 2008-03-25 20:25:35 remacle Exp $
  *
  * PROGRAM:     gshhs.c
  * AUTHOR:      Paul Wessel (pwessel@hawaii.edu)
@@ -341,64 +341,71 @@ void GMSH_GSHHSPlugin::catchErrorMessage(char *errorMessage) const
 PView *GMSH_GSHHSPlugin::execute(PView * v)
 {
   int iField = (int)GSHHSOptions_Number[0].def;
-  char *filename = (char *)GSHHSOptions_String[0].def;
-  char *outfilename = (char *)GSHHSOptions_String[1].def;
-  std::string format(GSHHSOptions_String[2].def);
-  std::string coordinate_name(GSHHSOptions_String[3].def);
-  double scale = GSHHSOptions_Number[3].def;
-  double shiftx = GSHHSOptions_Number[4].def;
-  double shifty = GSHHSOptions_Number[5].def;
-  if(coordinate_name != "cartesian" && coordinate_name != "utm") {
-    Msg(GERROR, "gshhs: unknown coordinate system %s.\n",
-        coordinate_name.c_str());
-    return NULL;
-  }
-  Field *field = NULL;
+  char *filename=(char*)GSHHSOptions_String[0].def;
+  char *outfilename=(char*)GSHHSOptions_String[1].def;
+  Field *field=NULL;
   GeoEarthImport geo_import(outfilename);
-  if(iField != -1) {
+  if(iField!=-1){
     field = GModel::current()->getFields()->get(iField);
-    if(!field) {
+    if(!field){
       Msg(GERROR, "Field[%d] does not exist", iField);
       return NULL;
-    }
-    else {
+    }else{
       geo_import.set_size_field(field);
     }
   }
   FILE *fp;
-  if((fp = fopen(filename, "rb")) == NULL) {
-    Msg(GERROR, "gshhs: Could not open file %s.\n", filename);
+  if ((fp = fopen (filename, "rb")) == NULL ) {
+    Msg(GERROR, "gshhs: Could not find file %s.\n", filename);
     return NULL;
   }
-  if(format == "gshhs") {
-    import_gshhs(fp, geo_import);
-  }
-  else if(format == "loops2") {
-    int npoints_in_loop;
-    UTMConverter utmc((double)GSHHSOptions_Number[1].def,
-                      (double)GSHHSOptions_Number[2].def);
-    UTM utm;
-    while(fscanf(fp, "%d", &npoints_in_loop) == 1) {
-      utm.zone = (int)GSHHSOptions_Number[6].def;
-      for(int i = 0; i < npoints_in_loop; i++) {
-        if(fscanf(fp, "%le %le", &utm.x, &utm.y) != 2) {
-          Msg(GERROR, "gshhs:  Error reading loops2 file \'%s\'.\n",
-              filename);
-          return NULL;
-        }
-        double lat, lon;
-        utm.x = utm.x * scale + shiftx;
-        utm.y = utm.y * scale + shifty;
-        utmc.utm2latlon(utm, lat, lon);
-        geo_import.add_point_lon_lat(SPoint2(lon, lat));
+  double w, e, s, n;
+  char source;
+  int	k, max_east = 270000000, info, n_read, flip;
+  struct	POINT p;
+  struct GSHHS h;
+  while(1){
+    n_read = fread ((void *)&h, (size_t)sizeof (struct GSHHS), (size_t)1, fp);
+    if(n_read!=1)break;
+    flip = (! (h.level > 0 && h.level < 5));	/* Take as sign that byte-swabbing is needed */
+    if (flip) {
+      h.id = swabi4 ((unsigned int)h.id);
+      h.n  = swabi4 ((unsigned int)h.n);
+      h.level = swabi4 ((unsigned int)h.level);
+      h.west  = swabi4 ((unsigned int)h.west);
+      h.east  = swabi4 ((unsigned int)h.east);
+      h.south = swabi4 ((unsigned int)h.south);
+      h.north = swabi4 ((unsigned int)h.north);
+      h.area  = swabi4 ((unsigned int)h.area);
+      h.version  = swabi4 ((unsigned int)h.version);
+      h.greenwich = swabi2 ((unsigned int)h.greenwich);
+      h.source = swabi2 ((unsigned int)h.source);
+    }
+    w = h.west  * 1.0e-6;	/* Convert from microdegrees to degrees */
+    e = h.east  * 1.0e-6;
+    s = h.south * 1.0e-6;
+    n = h.north * 1.0e-6;
+    source = (h.source == 1) ? 'W' : 'C';	/* Either WVS or CIA (WDBII) pedigree */
+    if ( h.level!=1) {	// Skip data (lake,island,pond)
+      fseek (fp, (long)(h.n * sizeof(struct POINT)), SEEK_CUR);
+      continue;
+    } 
+    for (k = 0; k < h.n; k++) {
+      if (fread ((void *)&p, (size_t)sizeof(struct POINT), (size_t)1, fp) != 1) {
+	Msg(GERROR, "gshhs:  Error reading gshhs file for polygon %d, point %d.\n",h.id, k);
+	return NULL;
+      }
+      if (flip) {
+	p.x = swabi4 ((unsigned int)p.x);
+	p.y = swabi4 ((unsigned int)p.y);
       }
-      geo_import.end_loop();
+      SPoint2 ll(
+		 ((h.greenwich && p.x > max_east) ? p.x * 1.0e-6 - 360.0 : p.x * 1.0e-6)*M_PI/180,
+		 (p.y * 1.0e-6)*M_PI/180);
+      geo_import.add_point_lon_lat(ll);
     }
-    geo_import.end_surface();
-  }
-  else {
-    Msg(GERROR, "gshhs: Unknown format %s.\n", format.c_str());
-    return NULL;
-  }
+    geo_import.end_loop();
+  } 
+  geo_import.end_surface();
   return NULL;
 }
diff --git a/Plugin/GeoEarthImport.cpp b/Plugin/GeoEarthImport.cpp
index b43b89fd2f6d365e3a7509e02b43a46d3fc866b6..a2b3b927d2ed46ddcc670d6c6c24310e86b5a520 100644
--- a/Plugin/GeoEarthImport.cpp
+++ b/Plugin/GeoEarthImport.cpp
@@ -1,107 +1,90 @@
 #include "GeoEarthImport.h"
-GeoEarthImport::~GeoEarthImport()
-{
-  file << "Euclidian Coordinates;";
-  file.close();
+GeoEarthImport::~GeoEarthImport(){
+  //  printf("oya\n");
+  //  myfile->close();
+  //  printf("oyo\n");
+  delete myfile;
 }
-GeoEarthImport::GeoEarthImport(const std::string _filename)
+GeoEarthImport::GeoEarthImport(const std::string &_filename)
+  : filename(_filename)
 {
-  filename = _filename;
-  file.open(filename.c_str());
-  size_field = NULL;
+  myfile = new std::ofstream(filename.c_str());
+  size_field=NULL;
   loop_buff.precision(16);
-  std::ostringstream buff;
-  il = ip = ill = is = ifi = 0;
-  buff << "IP = newp;\n";
-  buff << "IL = newl;\n";
-  buff << "ILL = newll;\n";
-  buff << "IS = news;\n";
-  buff << "IFI = newf;\n";
-  buff << "Point ( IP + " << ip++ << " ) = {0, 0, 0 , 1};\n";
-  buff << "Point ( IP + " << ip++ << " ) = {0, 0, 6.371e6 , 1};\n";
-  buff << "PolarSphere ( IS + " << is++ << " ) = {IP , IP+1};\n";
-  file << buff.str();
+  il=ip=ill=is=ifi=0;
+  (*myfile) << "IP = newp;\n";
+  (*myfile) << "IL = newl;\n";
+  (*myfile) << "ILL = newll;\n";
+  (*myfile) << "IS = news;\n";
+  (*myfile) << "IFI = newf;\n";
+  (*myfile) << "Point ( IP + " << ip++ << " ) = {0, 0, 0 , 1};\n";
+  (*myfile) << "Point ( IP + " << ip++ << " ) = {0, 0, 6.371e6 , 1};\n";
+  (*myfile) << "PolarSphere ( IS + " << is++ << " ) = {IP , IP+1};\n";
   new_surface();
-  new_loop();
+  new_loop();  
 }
-
-void GeoEarthImport::set_size_field(Field * _size_field)
-{
-  size_field = _size_field;
+void GeoEarthImport::set_size_field(Field *_size_field){
+  size_field=_size_field;
 }
-void GeoEarthImport::add_point(const SPoint3 & point)
-{
+void GeoEarthImport::add_point(const SPoint3 &point){
   SPoint3 midpoint = point;
-  SPoint2 stereo(-point.x() / (1 + point.z()), -point.y() / (1 + point.z()));
-  midpoint += lastpoint;
-  midpoint /= 2;
-  if(ip == first_point_in_loop || !size_field
-     || point.distance(lastpoint) * 6361e3 > (*size_field) (midpoint[0],
-                                                            midpoint[1],
-                                                            midpoint[2])) {
-    loop_buff << "Point ( IP + " << ip++ << " ) = {" << stereo.
-      x() << ", " << stereo.y() << ", " << 0 << ", 1};\n";
-    lastpoint = point;
+  SPoint2 stereo(-point.x()/(1+point.z()),-point.y()/(1+point.z()));
+  midpoint+=lastpoint;
+  midpoint/=2;
+  if( ip==first_point_in_loop || !size_field || point.distance(lastpoint)*6361e3 > (*size_field)(midpoint[0],midpoint[1],midpoint[2])){
+    loop_buff<<"Point ( IP + "<<ip++<<" ) = {"<<stereo.x()<<", "<<stereo.y()<<", "<<0<<", 1};\n";
+    lastpoint=point;
   }
 }
-void GeoEarthImport::add_point_lon_lat(const SPoint2 & ll)
-{
-  SPoint3 xyz(cos(ll.y()) * cos(ll.x()), cos(ll.y()) * sin(ll.x()),
-              sin(ll.y()));
+void GeoEarthImport::add_point_lon_lat(const SPoint2 &ll){
+  SPoint3 xyz( cos(ll.y())*cos(ll.x()), cos(ll.y())*sin(ll.x()), sin(ll.y()));
   add_point(xyz);
 }
-
-void GeoEarthImport::new_loop()
-{
+void GeoEarthImport::new_loop(){
   loop_buff.str("");
-  first_point_in_loop = ip;
+  first_point_in_loop=ip;
 }
-
-void GeoEarthImport::end_loop()
-{
-  if(ip - first_point_in_loop > 3) {
-    loop_buff << "BSpline ( IL + " << il++ << " ) = { IP + " <<
-      first_point_in_loop << " : IP + " << ip -
-      1 << ", IP + " << first_point_in_loop << " };\n";
-    loop_buff << "Line Loop ( ILL + " << ill++ << " ) = { IL + " << il -
-      1 << " };";
-    file << loop_buff.str();
+void GeoEarthImport::end_loop(){
+  if(ip-first_point_in_loop>3){
+    loop_buff<<"BSpline ( IL + "<<il++<<" ) = { IP + "<<first_point_in_loop<<" : IP + "<<ip-1<<", IP + "<<first_point_in_loop<<" };\n";
+    loop_buff<<"Line Loop ( ILL + "<<ill++<<" ) = { IL + "<<il-1<<" };";
+    (*myfile)<<loop_buff.str();	
     if(!empty_surface)
-      surface_buff << ", ";
-    surface_buff << "ILL + " << ill - 1;
-    empty_surface = false;
-  }
-  else {
-    ip = first_point_in_loop;
+      surface_buff<<", ";
+    surface_buff<< "ILL + "<<ill-1;
+    empty_surface=false;
+  }else{
+    ip=first_point_in_loop;
   }
   new_loop();
 }
-
-void GeoEarthImport::new_surface()
-{
+void GeoEarthImport::new_surface(){
   surface_buff.str("");
-  surface_buff << "Plane Surface( IS + " << is++ << " ) = { ";
-  first_point_in_surface = ip;
-  bool empty_surface = true;
+  surface_buff<<"Plane Surface( IS + "<<is++<<" ) = { ";
+  first_point_in_surface=ip;
+  bool empty_surface=true;
 }
-
-void GeoEarthImport::end_surface()
-{
-  if(!empty_surface) {
-    surface_buff << "};\n";
-    surface_buff << "Field [ IFI + " << ifi << "]  = Attractor;\n";
-    surface_buff << "Field [ IFI + " << ifi << "].NodesList  = { IP + " <<
-      first_point_in_surface << " : IP + " << ip - 1 << " };";
+void GeoEarthImport::end_surface(){
+  if(!empty_surface){
+    surface_buff<<"};\n";
+    surface_buff<<"Field [ IFI + "<<ifi<<"]  = Attractor;\n";
+    surface_buff<<"Field [ IFI + "<<ifi<<"].NodesList  = { IP + "<<first_point_in_surface <<" : IP + "<<ip-1<<" };";
     ifi++;
-    file << surface_buff.str();
+    (*myfile)<<surface_buff.str();	
   }
   new_surface();
 }
 
 /*static void projectLatLon(Point3D &psphere,Point &pplan){
+<<<<<<< GeoEarthImport.cpp
+  pplan.x=asin(psphere.z);
+  pplan.y=atan2(psphere.y,psphere.x);
+	pplan.zone_id=psphere.zone_id;
+=======
         pplan.x=asin(psphere.z);
         pplan.y=atan2(psphere.y,psphere.x);
         pplan.zone_id=psphere.zone_id;
+>>>>>>> 1.3
 }
 static void projectInvStereo(Point &pplan,Point3D &psphere){
         double rp2=pplan.x*pplan.x+pplan.y*pplan.y;
diff --git a/Plugin/GeoEarthImport.h b/Plugin/GeoEarthImport.h
index c027097fb8f67f5548d8b3fb145d7813c58bc35b..88ffe745ee791b334b5001fa64c13d84fdb4a6d6 100644
--- a/Plugin/GeoEarthImport.h
+++ b/Plugin/GeoEarthImport.h
@@ -1,28 +1,29 @@
 #ifndef _GEO_EARTH_IMPORT_H_
 #define _GEO_EARTH_IMPORT_H_
+#include <iostream>
+#include <fstream>
+#include <sstream>
 #include "SPoint3.h"
 #include "Field.h"
-#include <sstream>
-#include <fstream>
 #include "GeoStringInterface.h"
-class GeoEarthImport
-{
+class GeoEarthImport{
   Field *size_field;
-    std::ostringstream loop_buff, surface_buff;;
-    std::string filename;
-    std::ofstream file;
-  int il, ip, is, ill, ifi;
-  int first_point_in_loop, first_point_in_surface;
+  std::ostringstream loop_buff,surface_buff;;
+  std::string filename;
+  std::ofstream *myfile;
+  int il,ip,is,ill,ifi;
+  int first_point_in_loop,first_point_in_surface;
   bool empty_surface;
   SPoint3 lastpoint;
   void new_surface();
   void new_loop();
-
-    public: GeoEarthImport(const std::string _filename);
-   ~GeoEarthImport();
-  void set_size_field(Field * _size_field);
-  void add_point(const SPoint3 & point);
-  void add_point_lon_lat(const SPoint2 & ll);
+  
+ public :
+  GeoEarthImport(const std::string &_filename);
+  ~GeoEarthImport();
+  void set_size_field(Field *_size_field);
+  void add_point(const SPoint3 &point);
+  void add_point_lon_lat(const SPoint2 &ll);
   void end_loop();
   void end_surface();
 };
diff --git a/Plugin/Makefile b/Plugin/Makefile
index fe6c4fb25a9c59bad9093a5a6549ff12aa72fe7b..c90b65ef946a56d4889e0052c4e4a1b99b8afa3c 100644
--- a/Plugin/Makefile
+++ b/Plugin/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.157 2008-03-19 17:34:56 geuzaine Exp $
+# $Id: Makefile,v 1.158 2008-03-25 20:25:35 remacle Exp $
 #
 # Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
 #
@@ -41,10 +41,10 @@ SRC = Plugin.cpp PluginManager.cpp\
           TransformLatLon.cpp\
         Triangulate.cpp\
         Warp.cpp SphericalRaise.cpp\
-        Skin.cpp\
+        Skin.cpp GSHHS.cpp GeoEarthImport.cpp\
         Extract.cpp ExtractElements.cpp ExtractEdges.cpp\
         MakeSimplex.cpp\
-        Evaluate.cpp FieldView.cpp GSHHS.cpp GeoEarthImport.cpp\
+        Evaluate.cpp FieldView.cpp \
         Integrate.cpp Gradient.cpp Curl.cpp Divergence.cpp\
         Annotate.cpp Remove.cpp\
         Probe.cpp\
@@ -77,111 +77,656 @@ Plugin.o: Plugin.cpp Plugin.h ../Common/Options.h ../Post/ColorTable.h \
   ../Common/Message.h ../Post/PView.h ../Post/PViewData.h \
   ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Post/PViewOptions.h \
   ../Post/ColorTable.h ../Post/PViewDataList.h ../Post/PViewData.h \
-  ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h
+  ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \
+  /sw//include/gsl/gsl_linalg.h /sw//include/gsl/gsl_mode.h \
+  /sw//include/gsl/gsl_permutation.h /sw//include/gsl/gsl_types.h \
+  /sw//include/gsl/gsl_errno.h /sw//include/gsl/gsl_check_range.h \
+  /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h
 PluginManager.o: PluginManager.cpp Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
   ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h PluginManager.h CutMap.h Levelset.h CutGrid.h \
-  StreamLines.h CutPlane.h CutParametric.h CutSphere.h Skin.h \
-  ../DataStr/Tree.h ../DataStr/avl.h Extract.h ExtractElements.h \
-  ExtractEdges.h HarmonicToTime.h ModulusPhase.h Integrate.h Gradient.h \
-  Curl.h Divergence.h Annotate.h Remove.h MakeSimplex.h Smooth.h \
-  Transform.h TransformLatLon.h Triangulate.h Warp.h SphericalRaise.h \
-  Eigenvectors.h Eigenvalues.h Lambda2.h Evaluate.h ../Post/OctreePost.h \
-  ../Common/Octree.h ../Common/OctreeInternals.h Probe.h FieldView.h \
-  GSHHS.h ../Common/Context.h
+  ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
+  PluginManager.h CutMap.h Levelset.h CutGrid.h StreamLines.h CutPlane.h \
+  CutParametric.h CutSphere.h Skin.h ../DataStr/Tree.h ../DataStr/avl.h \
+  Extract.h ExtractElements.h ExtractEdges.h HarmonicToTime.h \
+  ModulusPhase.h Integrate.h Gradient.h Curl.h Divergence.h Annotate.h \
+  Remove.h MakeSimplex.h Smooth.h Transform.h TransformLatLon.h \
+  Triangulate.h Warp.h SphericalRaise.h Eigenvectors.h Eigenvalues.h \
+  Lambda2.h Evaluate.h ../Post/OctreePost.h ../Common/Octree.h \
+  ../Common/OctreeInternals.h Probe.h FieldView.h GSHHS.h \
+  ../Common/Context.h
 Levelset.o: Levelset.cpp Levelset.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
   ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h MakeSimplex.h ../Numeric/Numeric.h \
-  ../Numeric/NumericEmbedded.h
+  ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
+  MakeSimplex.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h
 CutPlane.o: CutPlane.cpp CutPlane.h Levelset.h Plugin.h \
   ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \
   ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \
   ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \
-  ../DataStr/List.h ../Common/GmshMatrix.h ../Common/Context.h \
-  ../Common/GmshUI.h ../Graphics/Draw.h
+  ../DataStr/List.h ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
+  ../Common/Context.h ../Common/GmshUI.h ../Graphics/Draw.h
 CutSphere.o: CutSphere.cpp CutSphere.h Levelset.h Plugin.h \
   ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \
   ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \
   ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \
-  ../DataStr/List.h ../Common/GmshMatrix.h ../Common/Context.h \
-  ../Common/GmshUI.h ../Graphics/Draw.h
+  ../DataStr/List.h ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
+  ../Common/Context.h ../Common/GmshUI.h ../Graphics/Draw.h
 CutMap.o: CutMap.cpp CutMap.h Levelset.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
   ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h ../Common/Context.h
+  ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
+  ../Common/Context.h
 Smooth.o: Smooth.cpp Smooth.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
   ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h
+  ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h
 CutParametric.o: CutParametric.cpp ../Post/OctreePost.h \
   ../Common/Octree.h ../Common/OctreeInternals.h CutParametric.h Plugin.h \
   ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \
   ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \
   ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \
-  ../DataStr/List.h ../Common/GmshMatrix.h ../Common/Context.h \
-  ../Common/GmshUI.h ../Graphics/Draw.h
+  ../DataStr/List.h ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
+  ../Common/Context.h ../Common/GmshUI.h ../Graphics/Draw.h \
+  ../contrib/MathEval/matheval.h
 Lambda2.o: Lambda2.cpp Lambda2.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
   ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h ../Common/ShapeFunctions.h ../Numeric/Numeric.h \
+  ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
+  ../Common/ShapeFunctions.h ../Numeric/Numeric.h \
   ../Numeric/NumericEmbedded.h
 Eigenvectors.o: Eigenvectors.cpp Eigenvectors.h Plugin.h \
   ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \
   ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \
   ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \
-  ../DataStr/List.h ../Common/GmshMatrix.h ../Numeric/Numeric.h \
-  ../Numeric/NumericEmbedded.h ../Numeric/EigSolve.h
+  ../DataStr/List.h ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
+  ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../Numeric/EigSolve.h
 Eigenvalues.o: Eigenvalues.cpp Eigenvalues.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
   ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h ../Numeric/Numeric.h \
-  ../Numeric/NumericEmbedded.h
+  ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
+  ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h
 StreamLines.o: StreamLines.cpp StreamLines.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
   ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h ../Post/OctreePost.h ../Common/Octree.h \
-  ../Common/OctreeInternals.h ../Common/Context.h ../Common/GmshUI.h \
-  ../Graphics/Draw.h
+  ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
+  ../Post/OctreePost.h ../Common/Octree.h ../Common/OctreeInternals.h \
+  ../Common/Context.h ../Common/GmshUI.h ../Graphics/Draw.h
 CutGrid.o: CutGrid.cpp ../Post/OctreePost.h ../Common/Octree.h \
   ../Common/OctreeInternals.h CutGrid.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
   ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h ../Common/Context.h ../Common/GmshUI.h \
-  ../Graphics/Draw.h
+  ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
+  ../Common/Context.h ../Common/GmshUI.h ../Graphics/Draw.h
 Transform.o: Transform.cpp Transform.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
   ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h
+  ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h
 TransformLatLon.o: TransformLatLon.cpp TransformLatLon.h Plugin.h \
   ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \
   ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \
   ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \
-  ../DataStr/List.h ../Common/GmshMatrix.h
+  ../DataStr/List.h ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h
 Triangulate.o: Triangulate.cpp ../Geo/GModel.h ../Geo/GVertex.h \
   ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
   ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \
@@ -201,12 +746,86 @@ Triangulate.o: Triangulate.cpp ../Geo/GModel.h ../Geo/GVertex.h \
   ../Common/Options.h ../Post/ColorTable.h ../Post/PView.h \
   ../Post/PViewData.h ../Post/PViewOptions.h ../Post/ColorTable.h \
   ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \
-  ../Common/GmshMatrix.h ../Common/Context.h
+  ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
+  ../Common/Context.h
 Warp.o: Warp.cpp Warp.h Plugin.h ../Common/Options.h ../Post/ColorTable.h \
   ../Common/Message.h ../Post/PView.h ../Post/PViewData.h \
   ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Post/PViewOptions.h \
   ../Post/ColorTable.h ../Post/PViewDataList.h ../Post/PViewData.h \
   ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \
+  /sw//include/gsl/gsl_linalg.h /sw//include/gsl/gsl_mode.h \
+  /sw//include/gsl/gsl_permutation.h /sw//include/gsl/gsl_types.h \
+  /sw//include/gsl/gsl_errno.h /sw//include/gsl/gsl_check_range.h \
+  /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
   ../Common/SmoothData.h ../Numeric/Numeric.h \
   ../Numeric/NumericEmbedded.h
 SphericalRaise.o: SphericalRaise.cpp SphericalRaise.h Plugin.h \
@@ -214,62 +833,419 @@ SphericalRaise.o: SphericalRaise.cpp SphericalRaise.h Plugin.h \
   ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \
   ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \
-  ../DataStr/List.h ../Common/GmshMatrix.h ../Numeric/Numeric.h \
-  ../Numeric/NumericEmbedded.h
+  ../DataStr/List.h ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
+  ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h
 Skin.o: Skin.cpp Skin.h Plugin.h ../Common/Options.h ../Post/ColorTable.h \
   ../Common/Message.h ../Post/PView.h ../Post/PViewData.h \
   ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Post/PViewOptions.h \
   ../Post/ColorTable.h ../Post/PViewDataList.h ../Post/PViewData.h \
   ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \
+  /sw//include/gsl/gsl_linalg.h /sw//include/gsl/gsl_mode.h \
+  /sw//include/gsl/gsl_permutation.h /sw//include/gsl/gsl_types.h \
+  /sw//include/gsl/gsl_errno.h /sw//include/gsl/gsl_check_range.h \
+  /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
   ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Malloc.h \
   ../Common/Context.h
+GSHHS.o: GSHHS.cpp GSHHS.h Plugin.h ../Common/Options.h \
+  ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
+  ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
+  ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
+  ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
+  ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
+  ../Mesh/Field.h ../Geo/Geo.h ../Common/GmshDefines.h \
+  ../Geo/gmshSurface.h ../Geo/Pair.h ../Geo/Range.h ../Geo/SPoint2.h \
+  ../Geo/SPoint3.h ../Geo/SVector3.h ../Geo/SPoint3.h \
+  ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \
+  ../Numeric/NumericEmbedded.h ../DataStr/Tree.h ../DataStr/avl.h \
+  ../Geo/SPoint2.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \
+  ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \
+  ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \
+  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/GFace.h \
+  ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h \
+  ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h ../Geo/GRegion.h \
+  ../Geo/GEntity.h ../Geo/SBoundingBox3d.h ../Geo/GeoStringInterface.h \
+  ../Common/Context.h GeoEarthImport.h
+GeoEarthImport.o: GeoEarthImport.cpp GeoEarthImport.h ../Geo/SPoint3.h \
+  ../Mesh/Field.h ../Geo/Geo.h ../Common/GmshDefines.h \
+  ../Geo/gmshSurface.h ../Geo/Pair.h ../Geo/Range.h ../Geo/SPoint2.h \
+  ../Geo/SPoint3.h ../Geo/SVector3.h ../Geo/SPoint3.h \
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Numeric/Numeric.h \
+  ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../Geo/SPoint2.h ../Geo/ExtrudeParams.h \
+  ../Common/SmoothData.h ../Post/PView.h ../Post/PViewData.h \
+  ../Post/PViewOptions.h ../Post/ColorTable.h ../Geo/GeoStringInterface.h
 Extract.o: Extract.cpp Extract.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
   ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h
+  ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
+  ../contrib/MathEval/matheval.h
 ExtractElements.o: ExtractElements.cpp ExtractElements.h Plugin.h \
   ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \
   ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \
   ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \
-  ../DataStr/List.h ../Common/GmshMatrix.h ../Numeric/Numeric.h \
-  ../Numeric/NumericEmbedded.h
+  ../DataStr/List.h ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
+  ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h
 ExtractEdges.o: ExtractEdges.cpp ExtractEdges.h Plugin.h \
   ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \
   ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \
   ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \
-  ../DataStr/List.h ../Common/GmshMatrix.h ../Mesh/BDS.h ../Geo/GFace.h \
-  ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
-  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
-  ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h ../Geo/GEntity.h \
-  ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/SPoint3.h \
-  ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/SPoint2.h ../Geo/SVector3.h \
-  ../Geo/Pair.h
+  ../DataStr/List.h ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
+  ../Mesh/BDS.h ../Geo/GFace.h ../Geo/GEntity.h ../Geo/Range.h \
+  ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \
+  ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/SVector3.h \
+  ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/SPoint2.h \
+  ../Geo/SVector3.h ../Geo/Pair.h
 MakeSimplex.o: MakeSimplex.cpp MakeSimplex.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
   ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h
+  ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h
 Evaluate.o: Evaluate.cpp Evaluate.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
   ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h ../Post/OctreePost.h ../Common/Octree.h \
-  ../Common/OctreeInternals.h
+  ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
+  ../Post/OctreePost.h ../Common/Octree.h ../Common/OctreeInternals.h \
+  ../contrib/MathEval/matheval.h
 FieldView.o: FieldView.cpp FieldView.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
   ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h ../Mesh/Field.h ../Geo/Geo.h \
-  ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \
-  ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \
-  ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \
+  ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
+  ../Mesh/Field.h ../Geo/Geo.h ../Common/GmshDefines.h \
+  ../Geo/gmshSurface.h ../Geo/Pair.h ../Geo/Range.h ../Geo/SPoint2.h \
+  ../Geo/SPoint3.h ../Geo/SVector3.h ../Geo/SPoint3.h \
+  ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \
   ../Numeric/NumericEmbedded.h ../DataStr/Tree.h ../DataStr/avl.h \
   ../Geo/SPoint2.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \
   ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \
@@ -279,53 +1255,136 @@ FieldView.o: FieldView.cpp FieldView.h Plugin.h ../Common/Options.h \
   ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h \
   ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h ../Geo/GRegion.h \
   ../Geo/GEntity.h ../Geo/SBoundingBox3d.h
-GSHHS.o: GSHHS.cpp GSHHS.h Plugin.h ../Common/Options.h \
-  ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
-  ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
-  ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
-  ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h ../Mesh/Field.h ../Geo/Geo.h \
-  ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \
-  ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \
-  ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \
-  ../Numeric/NumericEmbedded.h ../DataStr/Tree.h ../DataStr/avl.h \
-  ../Geo/SPoint2.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \
-  ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \
-  ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \
-  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
-  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/GFace.h \
-  ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h \
-  ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h ../Geo/GRegion.h \
-  ../Geo/GEntity.h ../Geo/SBoundingBox3d.h ../Geo/GeoStringInterface.h \
-  ../Common/Context.h GeoEarthImport.h
-GeoEarthImport.o: GeoEarthImport.cpp GeoEarthImport.h ../Geo/SPoint3.h \
-  ../Mesh/Field.h ../Geo/Geo.h ../Common/GmshDefines.h \
-  ../Geo/gmshSurface.h ../Geo/Pair.h ../Geo/Range.h ../Geo/SPoint2.h \
-  ../Geo/SPoint3.h ../Geo/SVector3.h ../Geo/SPoint3.h \
-  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Numeric/Numeric.h \
-  ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \
-  ../DataStr/avl.h ../Geo/SPoint2.h ../Geo/ExtrudeParams.h \
-  ../Common/SmoothData.h ../Post/PView.h ../Post/PViewData.h \
-  ../Post/PViewOptions.h ../Post/ColorTable.h ../Geo/GeoStringInterface.h
 Integrate.o: Integrate.cpp Integrate.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
   ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h ../Common/ShapeFunctions.h ../Numeric/Numeric.h \
+  ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
+  ../Common/ShapeFunctions.h ../Numeric/Numeric.h \
   ../Numeric/NumericEmbedded.h
 Gradient.o: Gradient.cpp Gradient.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
   ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h ../Common/ShapeFunctions.h ../Numeric/Numeric.h \
+  ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
+  ../Common/ShapeFunctions.h ../Numeric/Numeric.h \
   ../Numeric/NumericEmbedded.h
 Curl.o: Curl.cpp Curl.h Plugin.h ../Common/Options.h ../Post/ColorTable.h \
   ../Common/Message.h ../Post/PView.h ../Post/PViewData.h \
   ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Post/PViewOptions.h \
   ../Post/ColorTable.h ../Post/PViewDataList.h ../Post/PViewData.h \
   ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \
+  /sw//include/gsl/gsl_linalg.h /sw//include/gsl/gsl_mode.h \
+  /sw//include/gsl/gsl_permutation.h /sw//include/gsl/gsl_types.h \
+  /sw//include/gsl/gsl_errno.h /sw//include/gsl/gsl_check_range.h \
+  /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
   ../Common/ShapeFunctions.h ../Numeric/Numeric.h \
   ../Numeric/NumericEmbedded.h
 Divergence.o: Divergence.cpp Divergence.h Plugin.h ../Common/Options.h \
@@ -333,15 +1392,89 @@ Divergence.o: Divergence.cpp Divergence.h Plugin.h ../Common/Options.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
   ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h ../Common/ShapeFunctions.h ../Numeric/Numeric.h \
+  ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
+  ../Common/ShapeFunctions.h ../Numeric/Numeric.h \
   ../Numeric/NumericEmbedded.h
 Annotate.o: Annotate.cpp Annotate.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
   ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h ../Common/Context.h ../Common/GmshUI.h \
-  ../Fltk/GUI.h ../Fltk/Opengl_Window.h ../Fltk/Colorbar_Window.h \
+  ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
+  ../Common/Context.h ../Common/GmshUI.h ../Fltk/GUI.h \
+  ../Fltk/Opengl_Window.h ../Fltk/Colorbar_Window.h \
   ../Fltk/Popup_Button.h ../Fltk/SpherePosition_Widget.h ../Mesh/Field.h \
   ../Geo/Geo.h ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \
   ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \
@@ -354,24 +1487,168 @@ Remove.o: Remove.cpp Remove.h Plugin.h ../Common/Options.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
   ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h
+  ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h
 Probe.o: Probe.cpp Probe.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
   ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h ../Common/Context.h ../Post/OctreePost.h \
-  ../Common/Octree.h ../Common/OctreeInternals.h ../Common/GmshUI.h \
-  ../Graphics/Draw.h
+  ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h \
+  ../Common/Context.h ../Post/OctreePost.h ../Common/Octree.h \
+  ../Common/OctreeInternals.h ../Common/GmshUI.h ../Graphics/Draw.h
 HarmonicToTime.o: HarmonicToTime.cpp HarmonicToTime.h Plugin.h \
   ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \
   ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \
   ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \
-  ../DataStr/List.h ../Common/GmshMatrix.h
+  ../DataStr/List.h ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h
 ModulusPhase.o: ModulusPhase.cpp ModulusPhase.h Plugin.h \
   ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \
   ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \
   ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \
-  ../DataStr/List.h ../Common/GmshMatrix.h
+  ../DataStr/List.h ../Common/GmshMatrix.h /sw//include/gsl/gsl_linalg.h \
+  /sw//include/gsl/gsl_mode.h /sw//include/gsl/gsl_permutation.h \
+  /sw//include/gsl/gsl_types.h /sw//include/gsl/gsl_errno.h \
+  /sw//include/gsl/gsl_check_range.h /sw//include/gsl/gsl_vector.h \
+  /sw//include/gsl/gsl_vector_complex_long_double.h \
+  /sw//include/gsl/gsl_complex.h \
+  /sw//include/gsl/gsl_vector_long_double.h \
+  /sw//include/gsl/gsl_block_long_double.h \
+  /sw//include/gsl/gsl_vector_complex.h \
+  /sw//include/gsl/gsl_block_complex_long_double.h \
+  /sw//include/gsl/gsl_vector_complex_double.h \
+  /sw//include/gsl/gsl_vector_double.h \
+  /sw//include/gsl/gsl_block_double.h \
+  /sw//include/gsl/gsl_block_complex_double.h \
+  /sw//include/gsl/gsl_vector_complex_float.h \
+  /sw//include/gsl/gsl_vector_float.h /sw//include/gsl/gsl_block_float.h \
+  /sw//include/gsl/gsl_block_complex_float.h \
+  /sw//include/gsl/gsl_vector_ulong.h /sw//include/gsl/gsl_block_ulong.h \
+  /sw//include/gsl/gsl_vector_long.h /sw//include/gsl/gsl_block_long.h \
+  /sw//include/gsl/gsl_vector_uint.h /sw//include/gsl/gsl_block_uint.h \
+  /sw//include/gsl/gsl_vector_int.h /sw//include/gsl/gsl_block_int.h \
+  /sw//include/gsl/gsl_vector_ushort.h \
+  /sw//include/gsl/gsl_block_ushort.h /sw//include/gsl/gsl_vector_short.h \
+  /sw//include/gsl/gsl_block_short.h /sw//include/gsl/gsl_vector_uchar.h \
+  /sw//include/gsl/gsl_block_uchar.h /sw//include/gsl/gsl_vector_char.h \
+  /sw//include/gsl/gsl_block_char.h /sw//include/gsl/gsl_matrix.h \
+  /sw//include/gsl/gsl_matrix_complex_long_double.h \
+  /sw//include/gsl/gsl_matrix_complex_double.h \
+  /sw//include/gsl/gsl_matrix_complex_float.h \
+  /sw//include/gsl/gsl_matrix_long_double.h \
+  /sw//include/gsl/gsl_matrix_double.h \
+  /sw//include/gsl/gsl_matrix_float.h /sw//include/gsl/gsl_matrix_ulong.h \
+  /sw//include/gsl/gsl_matrix_long.h /sw//include/gsl/gsl_matrix_uint.h \
+  /sw//include/gsl/gsl_matrix_int.h /sw//include/gsl/gsl_matrix_ushort.h \
+  /sw//include/gsl/gsl_matrix_short.h /sw//include/gsl/gsl_matrix_uchar.h \
+  /sw//include/gsl/gsl_matrix_char.h /sw//include/gsl/gsl_blas.h \
+  /sw//include/gsl/gsl_blas_types.h /sw//include/gsl/gsl_cblas.h
diff --git a/demos/gen_earth_100km.geo b/demos/gen_earth_100km.geo
index 9155c4dd27f7c665c793789caf745573b682476b..6d3df56460588684db9c92d1e55d3dd52fb9c607 100644
--- a/demos/gen_earth_100km.geo
+++ b/demos/gen_earth_100km.geo
@@ -1,17 +1,20 @@
 // you need gshhs data file, available on ftp://ftp.soest.hawaii.edu/pwessel/gshhs/gshhs_1.6.zip
 Field[1] = MathEval;
-Field[1].F= "100e3";
+Field[1].F= "100.e3";
+/*
 Plugin(GSHHS).iField=1;
-Plugin(GSHHS).InFileName="gshhs_c.b";
+Plugin(GSHHS).InFileName="gshhs_f.b";
 Plugin(GSHHS).OutFileName="earth_100km.geo";
 Plugin(GSHHS).Run;
+*/
 Merge "earth_100km.geo";
 Field[3] = Threshold;
-Field[3].LcMin = 100e3;
-Field[3].LcMax = 300e3;
-Field[3].DistMax = 1000e3;
-Field[3].DistMin = 300e3;
+Field[3].LcMin = 10e3;
+Field[3].LcMax = 500e3;
+Field[3].DistMax = 2000e3;
+Field[3].DistMin = 0e3;
 Field[3].IField = 2;
 Field[4]=MathEval;
-Field[4].F = "100e3";
-Background Field = 4;
+Field[4].F = "80e3";
+Background Field = 3;
+