Index: /issm/trunk/src/c/Bamgx/Mesh2.h
===================================================================
--- /issm/trunk/src/c/Bamgx/Mesh2.h	(revision 2860)
+++ /issm/trunk/src/c/Bamgx/Mesh2.h	(revision 2861)
@@ -170,6 +170,4 @@
   int ref() const { return ReferenceNumber;}
 
-  friend std::ostream& operator <<(std::ostream& f, const  Vertex & v)
-  {f << "(" << v.i  << "," << v.r << MatVVP2x2(v.m) << ")" ;   return f;}
   inline void Set(const Vertex & rec,const Triangles &,Triangles &);
 };
@@ -181,7 +179,4 @@
 /////////////////////////////////////////////////////////////////////////////////////
 class TriangleAdjacent {
-  friend std::ostream& operator <<(std::ostream& f, const  TriangleAdjacent & ta)
-  {f << "{" << ta.t << "," << ((int) ta.a) << "}" ;
-   return f;}
 
 public:
@@ -275,6 +270,4 @@
   
 inline void Set(const GeometricalVertex & rec,const Geometry & Gh ,const Geometry & GhNew);
-  inline friend std::ostream& operator <<(std::ostream& f, const  GeometricalVertex & s) 
-     { f << s.r << "," << s.cas << ".";return f; }
 };
 
@@ -341,5 +334,4 @@
 class Triangle {
   friend class TriangleAdjacent;
-  friend std::ostream& operator <<(std::ostream& f, const  Triangle & ta);
 
 
@@ -606,9 +598,4 @@
   int IsRequiredVertex(){ return this? (( abscisse<0 ? (gv?gv->Required():0):0 )) : 0;}
   void SetOn(){mv->on=this;mv->vint=IsVertexOnGeom;}
-  friend std::ostream& operator <<(std::ostream& f, const  VertexOnGeom & vog){
-    f << vog.abscisse << " " << vog.mv << " " << vog.gv << " ; ";
-    if (vog.abscisse < 0) f << *vog.gv << " ;; " ;
-    //    else f << *vog.ge << " ;; " ;
-    return f;}
   inline void Set(const Triangles &,Int4,Triangles &);
     
@@ -643,9 +630,7 @@
 class CrackedEdge { // a small class to store on crack an uncrack information 
   friend class Triangles;
-  friend std::ostream& operator <<(std::ostream& f, const   Triangles & Th) ;  
  class CrackedTriangle {
   friend class Triangles;
   friend class CrackedEdge;
-  friend std::ostream& operator <<(std::ostream& f, const   Triangles & Th) ;  
   Triangle * t; // edge of triangle t
   int i; //  edge number of in triangle
@@ -855,5 +840,4 @@
   int UnCrack();
   
- friend std::ostream& operator <<(std::ostream& f,  const  Triangles & Th); 
   void ConsGeometry(Real8 =-1.0,int *equiedges=0); // construct a geometry if no geo 
   void FillHoleInMesh() ;
@@ -926,5 +910,4 @@
   GeometricalEdge *  ProjectOnCurve(const Edge & ,Real8,Vertex &,VertexOnGeom &) const ;
   GeometricalEdge *  Contening(const R2 P,  GeometricalEdge * start) const;
-  friend std::ostream& operator <<(std::ostream& f, const   Geometry & Gh); 
   void WriteGeometry(BamgGeom* bamggeom, BamgOpts* bamgopts);
 }; // End Class Geometry
Index: /issm/trunk/src/c/Bamgx/Metric.h
===================================================================
--- /issm/trunk/src/c/Bamgx/Metric.h	(revision 2860)
+++ /issm/trunk/src/c/Bamgx/Metric.h	(revision 2861)
@@ -1,30 +1,2 @@
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :      
-// USAGE    :        
-// ORG      : 
-// AUTHOR   : Frederic Hecht
-// E-MAIL   : hecht@ann.jussieu.fr
-//
-
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
 #ifndef TYPEMETRIX
 #define TYPEMETRIX MetricAnIso
@@ -73,7 +45,4 @@
   operator D2xD2(){ return D2xD2(1/(h*h),0.,0.,1/(h*h));}
   void     Box(Real4 & hx,Real4 & hy) { hx=h,hy=h;}
-  friend std::ostream& operator <<(std::ostream& f, const  MetricIso & M)
-  {f << " h=" << M.h<< ";" ;   return f;}
-
 };
 
@@ -103,6 +72,4 @@
   Real8 operator()(R2 x,R2 y) const { return x.x*y.x*a11+(x.x*x.y+x.y*y.x)*a21+x.y*y.y*a22;};
   inline void  Box(Real4 &hx,Real4 &hy) const ;  
- friend std::ostream& operator <<(std::ostream& f, const  MetricAnIso & M)
-  {f << " mtr a11=" << M.a11 << " a21=a12=" << M.a21 << " a22=" << M.a22 << ";" ;   return f;}
   MetricAnIso(const MatVVP2x2);
 };
@@ -128,8 +95,4 @@
   void Maxh(double h) {Min(1.0/(h*h));}
   void Isotrope() {lambda1=lambda2=bamg::Max(lambda1,lambda2);}
-  friend std::ostream& operator <<(std::ostream& f, const MatVVP2x2 & c)
-  { f << '{' << 1/sqrt(c.lambda1)<< ',' << 1/sqrt(c.lambda2) << ','<< c.v << '}' <<std::flush ; return f; }
-  friend std::istream& operator >>(std::istream& f,  MatVVP2x2 & c)
-  { f >> c.lambda1 >>c.lambda2 >> c.v.x >> c.v.y ;c.v /= Norme2(c.v); return f; }
   MatVVP2x2(const MetricAnIso );
   MatVVP2x2(const MetricIso M) :  lambda1(1/(M.h*M.h)),lambda2(1/(M.h*M.h)),v(1,0) {}
Index: /issm/trunk/src/c/Bamgx/QuadTree.h
===================================================================
--- /issm/trunk/src/c/Bamgx/QuadTree.h	(revision 2860)
+++ /issm/trunk/src/c/Bamgx/QuadTree.h	(revision 2861)
@@ -74,7 +74,4 @@
   QuadTree(Triangles * t,long nbv=-1);
   QuadTree();
-  friend ostream& operator <<(ostream& f, const  QuadTree & qt);
-
-
 	
 };
Index: /issm/trunk/src/c/Bamgx/R2.h
===================================================================
--- /issm/trunk/src/c/Bamgx/R2.h	(revision 2860)
+++ /issm/trunk/src/c/Bamgx/R2.h	(revision 2861)
@@ -1,2 +1,3 @@
+#include <iostream>
 
 namespace bamg {
