Index: /issm/trunk-jpl/src/c/bamg/AdjacentTriangle.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/AdjacentTriangle.cpp	(revision 21790)
+++ /issm/trunk-jpl/src/c/bamg/AdjacentTriangle.cpp	(revision 21791)
@@ -34,5 +34,5 @@
 	}
 	/*}}}*/
-	Icoor2 & AdjacentTriangle::det() const {/*{{{*/
+	long long & AdjacentTriangle::det() const {/*{{{*/
 		return t->det;
 	}
Index: /issm/trunk-jpl/src/c/bamg/AdjacentTriangle.h
===================================================================
--- /issm/trunk-jpl/src/c/bamg/AdjacentTriangle.h	(revision 21790)
+++ /issm/trunk-jpl/src/c/bamg/AdjacentTriangle.h	(revision 21791)
@@ -37,5 +37,5 @@
 			AdjacentTriangle Adj() const;
 			BamgVertex* EdgeVertex(const int & i) const;
-			Icoor2& det() const;
+			long long& det() const;
 	};
 }
Index: /issm/trunk-jpl/src/c/bamg/BamgVertex.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/BamgVertex.cpp	(revision 21790)
+++ /issm/trunk-jpl/src/c/bamg/BamgVertex.cpp	(revision 21791)
@@ -157,5 +157,5 @@
 		double delta=Norme2_2(Xmove); 
 
-		Icoor2 deta[3];
+		long long deta[3];
 		I2 IBTh  = BTh.R2ToI2(PNew);
 
Index: /issm/trunk-jpl/src/c/bamg/ListofIntersectionTriangles.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/ListofIntersectionTriangles.cpp	(revision 21790)
+++ /issm/trunk-jpl/src/c/bamg/ListofIntersectionTriangles.cpp	(revision 21791)
@@ -193,5 +193,5 @@
 		Triangle *tbegin, *t;
 
-		Icoor2 deta[3], deti,detj;
+		long long deta[3], deti,detj;
 		double ba[3];
 		int ifirst=-1,ilast;
@@ -199,5 +199,5 @@
 		int ocut,i,j,k=-1;
 		//  int OnAVertices =0;
-		Icoor2 dt[3];
+		long long dt[3];
 		I2 a = Bh.R2ToI2(A) ,b= Bh.R2ToI2(B);// compute  the Icoor a,b
 		I2 vi,vj;  
@@ -356,5 +356,5 @@
 				k = OppositeVertex[ocut];
 
-				Icoor2 detbij = bamg::det((*t)[i],(*t)[j],b);
+				long long detbij = bamg::det((*t)[i],(*t)[j],b);
 
 				if (detbij >= 0) { //we find the triangle contening b
Index: /issm/trunk-jpl/src/c/bamg/Mesh.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/Mesh.cpp	(revision 21790)
+++ /issm/trunk-jpl/src/c/bamg/Mesh.cpp	(revision 21791)
@@ -1049,5 +1049,5 @@
 	}
 	/*}}}*/
-	void Mesh::AddVertex( BamgVertex &s,Triangle* t, Icoor2* det3){/*{{{*/
+	void Mesh::AddVertex( BamgVertex &s,Triangle* t, long long* det3){/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/Add)*/
 		// -------------------------------
@@ -1068,5 +1068,5 @@
 		/*Intermediaries*/
 		Triangle* tt[3];       //the three triangles
-		Icoor2 det3local[3];   //three determinants (integer)
+		long long det3local[3];   //three determinants (integer)
 		int nbzerodet =0;      //number of zeros in det3
 		int izerodet=-1;       //egde containing the vertex s
@@ -1079,5 +1079,5 @@
 
 		//determinant of t
-		Icoor2 detOld=t->det;
+		long long detOld=t->det;
 
 		/* infvertexindex = index of the infinite vertex (NULL)
@@ -2805,5 +2805,5 @@
 
 			//Find the triangle in which newvertex is located
-			Icoor2 det3[3];
+			long long det3[3];
 			Triangle* tcvi = TriangleFindFromCoord(newvertex->i,det3); //(newvertex->i = integer coordinates)
 
@@ -2832,5 +2832,5 @@
 		long i;
 		long NbSwap=0;
-		Icoor2 det3[3];
+		long long det3[3];
 
 		//number of new points
@@ -3017,5 +3017,5 @@
 
 		I2 a = R2ToI2(A);
-		Icoor2 deta[3];
+		long long deta[3];
 		Triangle * t =TriangleFindFromCoord(a,deta);
 		if (t->det <0) { // outside
@@ -3476,5 +3476,5 @@
 		for (int icount=2; icount<nbvb; icount++) {
 			BamgVertex *vi  = orderedvertices[icount];
-			Icoor2 det3[3];
+			long long det3[3];
 			Triangle *tcvi = TriangleFindFromCoord(vi->i,det3);
 			quadtree->Add(*vi); 
@@ -3893,5 +3893,5 @@
 			long  iv = nbvold;
 			long NbSwap = 0;
-			Icoor2 det3[3];  
+			long long det3[3];  
 			for (int i=nbvold;i<nbv;i++) {// for all the new point
 				BamgVertex & vi = vertices[i];
@@ -3934,5 +3934,5 @@
 	}
 	/*}}}*/
-	Triangle * Mesh::TriangleFindFromCoord(const I2 & B,Icoor2 det3[3], Triangle *tstart) const {/*{{{*/
+	Triangle * Mesh::TriangleFindFromCoord(const I2 & B,long long det3[3], Triangle *tstart) const {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/FindTriangleContening)*/
 
@@ -3963,5 +3963,5 @@
 		}
 
-		Icoor2  detop ;
+		long long  detop ;
 
 		/*initialize number of test triangle*/
@@ -4748,5 +4748,5 @@
 		}
 		int kkk=0;  
-		Icoor2 IJ_IA,IJ_AJ;
+		long long IJ_IA,IJ_AJ;
 		AdjacentTriangle edge(t,OppositeEdge[k]);          
 		for (;;edge = dir >0 ? Next(Adj(Next(edge))) : Previous(Adj(Previous(edge)))) {  
@@ -4792,5 +4792,5 @@
 		// we turn around a in the  direct direction  
 
-		Icoor2 det2 = v2 ? det(*v2,a,b): -1 , det1;
+		long long det2 = v2 ? det(*v2,a,b): -1 , det1;
 		if(v2) // normal case 
 		 det2 = det(*v2,a,b);
@@ -4819,5 +4819,5 @@
 					_error_("!v1 || !v2");
 				}
-				Icoor2 detss = 0,l=0;
+				long long detss = 0,l=0;
 				while ((SwapForForcingEdge(  va,  vb, tc, detss, det1,det2,NbSwap)))
 				 if(l++ > 10000000) {
@@ -4853,5 +4853,5 @@
 	}
 	/*}}}*/
-	void  swap(Triangle *t1,short a1, Triangle *t2,short a2, BamgVertex *s1,BamgVertex *s2,Icoor2 det1,Icoor2 det2){ /*{{{*/
+	void  swap(Triangle *t1,short a1, Triangle *t2,short a2, BamgVertex *s1,BamgVertex *s2,long long det1,long long det2){ /*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/swap)*/
 		// --------------------------------------------------------------
@@ -4897,5 +4897,5 @@
 	} // end swap 
 	/*}}}*/
-	int SwapForForcingEdge(BamgVertex   *  & pva ,BamgVertex  * &   pvb ,AdjacentTriangle & tt1,Icoor2 & dets1, Icoor2 & detsa,Icoor2 & detsb, int & NbSwap) {/*{{{*/
+	int SwapForForcingEdge(BamgVertex   *  & pva ,BamgVertex  * &   pvb ,AdjacentTriangle & tt1,long long & dets1, long long & detsa,long long & detsb, int & NbSwap) {/*{{{*/
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/SwapForForcingEdge)*/
 		// l'arete ta coupe l'arete pva pvb
@@ -4918,7 +4918,7 @@
 		BamgVertex & s2= (*t2)[OppositeVertex[a2]];
 
-		Icoor2 dets2 = det(*pva,*pvb,s2);
-		Icoor2 det1=t1->det , det2=t2->det ;
-		Icoor2 detT = det1+det2;
+		long long dets2 = det(*pva,*pvb,s2);
+		long long det1=t1->det , det2=t2->det ;
+		long long detT = det1+det2;
 		if ((det1<=0 ) || (det2<=0)){
 			_error_("(det1<=0 ) || (det2<=0)");
@@ -4927,6 +4927,6 @@
 			_error_("(detsa>=0) || (detsb<=0)");
 		}
-		Icoor2 ndet1 = bamg::det(s1,sa,s2);
-		Icoor2 ndet2 = detT - ndet1;
+		long long ndet1 = bamg::det(s1,sa,s2);
+		long long ndet2 = detT - ndet1;
 
 		int ToSwap =0; //pas de swap
Index: /issm/trunk-jpl/src/c/bamg/Mesh.h
===================================================================
--- /issm/trunk-jpl/src/c/bamg/Mesh.h	(revision 21790)
+++ /issm/trunk-jpl/src/c/bamg/Mesh.h	(revision 21791)
@@ -38,5 +38,5 @@
 
 			R2                            pmin,pmax;             // extrema
-			double                        coefIcoor;             // coef to integer Icoor1;
+			double                        coefIcoor;             // coef to integer
 			ListofIntersectionTriangles   lIntTria;
 
@@ -76,5 +76,5 @@
 			I2 R2ToI2(const R2 & P) const;
 			R2 I2ToR2(const I2 & P) const;
-			void AddVertex(BamgVertex & s,Triangle * t,Icoor2 *  =0) ;
+			void AddVertex(BamgVertex & s,Triangle * t,long long *  =0) ;
 			void Insert(bool random);
 			void Echo(void);
@@ -103,5 +103,5 @@
 			long GetId(const Edge * t) const;
 			BamgVertex* NearestVertex(int i,int j) ;
-			Triangle* TriangleFindFromCoord(const I2 & ,Icoor2 [3],Triangle *tstart=0) const;
+			Triangle* TriangleFindFromCoord(const I2 & ,long long [3],Triangle *tstart=0) const;
 			void ReadMesh(int* index,double* x,double* y,int nods,int nels);
 			void ReadMesh(BamgMesh* bamgmesh, BamgOpts* bamgopts);
@@ -149,8 +149,8 @@
 	void  swap(Triangle *t1,short a1,
 				Triangle *t2,short a2,
-				BamgVertex *s1,BamgVertex *s2,Icoor2 det1,Icoor2 det2);
+				BamgVertex *s1,BamgVertex *s2,long long det1,long long det2);
 	int SwapForForcingEdge(BamgVertex   *  & pva ,BamgVertex  * &   pvb ,
-				AdjacentTriangle & tt1,Icoor2 & dets1,
-				Icoor2 & detsa,Icoor2 & detsb, int & nbswap);
+				AdjacentTriangle & tt1,long long & dets1,
+				long long & detsa,long long & detsb, int & nbswap);
 	int ForceEdge(BamgVertex &a, BamgVertex & b,AdjacentTriangle & taret) ;
 	inline AdjacentTriangle Previous(const AdjacentTriangle & ta){
@@ -170,5 +170,5 @@
 		I2 ia=va,ib=vb,ic=vc;
 		I2 ab=ib-ia,bc=ic-ib,ac=ic-ia;
-		Icoor2 deta=Det(ab,ac);
+		long long deta=Det(ab,ac);
 		if (deta <=0) ret = -1;
 		else {
Index: /issm/trunk-jpl/src/c/bamg/Triangle.cpp
===================================================================
--- /issm/trunk-jpl/src/c/bamg/Triangle.cpp	(revision 21790)
+++ /issm/trunk-jpl/src/c/bamg/Triangle.cpp	(revision 21791)
@@ -238,8 +238,8 @@
 		BamgVertex  *s2=t2->vertices[OppositeVertex[a2]];
 
-		Icoor2 det1=t1->det , det2=t2->det ;
-		Icoor2 detT = det1+det2;
-		Icoor2 detA = Abs(det1) + Abs(det2);
-		Icoor2 detMin = Min(det1,det2);
+		long long det1=t1->det , det2=t2->det ;
+		long long detT = det1+det2;
+		long long detA = Abs(det1) + Abs(det2);
+		long long detMin = Min(det1,det2);
 
 		int OnSwap = 0;       
@@ -256,5 +256,5 @@
 			OnSwap = (Abs(det1) + Abs(det2)) < detA;
 
-			Icoor2 detMinNew=Min(det1,det2);
+			long long detMinNew=Min(det1,det2);
 			//     if (detMin<0 && (Abs(det1) + Abs(det2) == detA)) OnSwap=BinaryRand();// just for test   
 			if (! OnSwap &&(detMinNew>0)) {
@@ -265,5 +265,5 @@
 					 if(kopt) {
 						 // critere de Delaunay pure isotrope
-						 Icoor2 xb1 = sb->i.x - s1->i.x,
+						 long long xb1 = sb->i.x - s1->i.x,
 								  x21 = s2->i.x - s1->i.x,
 								  yb1 = sb->i.y - s1->i.y,
Index: /issm/trunk-jpl/src/c/bamg/Triangle.h
===================================================================
--- /issm/trunk-jpl/src/c/bamg/Triangle.h	(revision 21790)
+++ /issm/trunk-jpl/src/c/bamg/Triangle.h	(revision 21791)
@@ -21,5 +21,5 @@
 
 		public: 
-			Icoor2 det; //Integer determinant (twice its area)
+			long long det; //Integer determinant (twice its area)
 			union { 
 				Triangle *link;
Index: /issm/trunk-jpl/src/c/bamg/det.h
===================================================================
--- /issm/trunk-jpl/src/c/bamg/det.h	(revision 21790)
+++ /issm/trunk-jpl/src/c/bamg/det.h	(revision 21791)
@@ -6,7 +6,7 @@
 namespace bamg {
 
-	Icoor2 inline det(const I2 &a,const I2 & b,const I2 &c){
-		Icoor2 bax = b.x - a.x ,bay = b.y - a.y; 
-		Icoor2 cax = c.x - a.x ,cay = c.y - a.y; 
+	long long inline det(const I2 &a,const I2 & b,const I2 &c){
+		long long bax = b.x - a.x ,bay = b.y - a.y; 
+		long long cax = c.x - a.x ,cay = c.y - a.y; 
 		return  bax*cay - bay*cax;
 	}
Index: /issm/trunk-jpl/src/c/bamg/typedefs.h
===================================================================
--- /issm/trunk-jpl/src/c/bamg/typedefs.h	(revision 21790)
+++ /issm/trunk-jpl/src/c/bamg/typedefs.h	(revision 21791)
@@ -7,9 +7,7 @@
 
 	/*Integer coordinates types*/
-	typedef int  Icoor1; 
-	typedef long long Icoor2;
 
 	/*I2 and R2*/
-	typedef P2<Icoor1,Icoor2>  I2;
+	typedef P2<int,long long>  I2;
 	typedef P2<double,double>  R2;
 }
