- Timestamp:
- 06/07/17 10:50:54 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/branches/trunk-larour-NatGeoScience2016/src/c/bamg/Metric.h
r16237 r21759 30 30 Metric(double a); 31 31 Metric(double a,double b,double c); 32 Metric( double a,const Metric& ma, double b,const Metric&mb);33 Metric(const double a[3],const Metric& m0,const Metric& m1,const Metric&m2 );32 Metric(double a,const Metric ma,double b,const Metric mb); 33 Metric(const double a[3],const Metric m0,const Metric m1,const Metric m2 ); 34 34 void Echo(); 35 R2 mul(const R2 x)const;36 35 double det() const; 37 36 int IntersectWith(const Metric& M2); … … 42 41 R2 Orthogonal(const R2 x){ return R2(-(a21*x.x+a22*x.y),a11*x.x+a21*x.y); } 43 42 R2 Orthogonal(const I2 x){ return R2(-(a21*x.x+a22*x.y),a11*x.x+a21*x.y); } 43 double Length(double Ax,double Ay) const; 44 44 45 45 //operators … … 47 47 Metric operator/(double c) const {double c2=1/(c*c);return Metric(a11*c2,a21*c2,a22*c2);} 48 48 operator D2xD2(){ return D2xD2(a11,a21,a21,a22);} 49 double operator()(R2 x) const { return sqrt(x.x*x.x*a11+2*x.x*x.y*a21+x.y*x.y*a22);}; // length of x in metric sqrt(<Mx,x>)49 //double operator()(R2 x) const { return sqrt(x.x*x.x*a11+2*x.x*x.y*a21+x.y*x.y*a22);}; // length of x in metric sqrt(<Mx,x>) FIXME: replace by Length! 50 50 double 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;}; 51 51 … … 57 57 //fields 58 58 double lambda1,lambda2; 59 D2 v;59 double vx,vy; 60 60 61 61 //friends … … 114 114 } 115 115 inline Metric::Metric(const EigenMetric& M) { 116 double v00=M.v .x*M.v.x;117 double v11=M.v .y*M.v.y;118 double v01=M.v .x*M.v.y;116 double v00=M.vx*M.vx; 117 double v11=M.vy*M.vy; 118 double v01=M.vx*M.vy; 119 119 a11=v00*M.lambda1+v11*M.lambda2; 120 120 a21=v01*(M.lambda1-M.lambda2);
Note:
See TracChangeset
for help on using the changeset viewer.