Develop and Download Open Source Software

Browse Subversion Repository

Diff of /BLDConograph_ver1/trunk/src/lattice_symmetry/check_equiv.hh

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 31 by rtomiyasu, Thu May 15 00:49:01 2014 UTC revision 32 by rtomiyasu, Sat Aug 6 01:34:09 2016 UTC
# Line 34  inline bool equiv_resol(const Double& lh Line 34  inline bool equiv_resol(const Double& lh
34                  const Double& resol)                  const Double& resol)
35  {  {
36          Double diff = lhs - rhs;          Double diff = lhs - rhs;
37          Double min_value = min( fabs(lhs), fabs(rhs) );          Double max_value = max( fabs(lhs), fabs(rhs) );
38          if( fabs( diff ) <= min_value * resol ) return true;          if( fabs( diff ) <= max_value * resol ) return true;
39          return false;          return false;
40  }  }
41    
42    inline bool equiv_zero(const SymMat<Double>& S, const Int4& i, const Int4& j, const Double& resol)
43    {
44            return equiv_resol( S(i,i)+S(j,j)+S(i,j)*2.0, S(i,i)+S(j,j)-S(i,j)*2.0, resol);
45    }
46    
47    inline bool equiv_zero(const SymMat<Double>& S, const Int4& i, const Int4& j, const Int4& l, const Double& resol)
48    {
49            // Ki, Kj, Kl, Km, Kn -> Ki, -Kj, Kl, Kj+Km, Kj+Kn.
50            // (Sii + Sjj + Sij*2) + (Sjj + Sll + Sjl*2) + (Sii + Sjj + Sll + Sij*2 + Sjl*2 + Sil*2)
51            //      = (Sii + Sjj - Sij*2) + (Sjj + Sll - Sjl*2) + (Sii + Sjj + Sll - Sij*2 - Sjl*2 + Sil*2).
52            return equiv_resol(
53                            (S(i,i)+S(j,j)+S(l,l)+S(i,l)+(S(i,j)+S(j,l))*2.0)*2.0+S(j,j),
54                            (S(i,i)+S(j,j)+S(l,l)+S(i,l)-(S(i,j)+S(j,l))*2.0)*2.0+S(j,j), resol);
55    }
56    
57    inline bool equiv_zero(const SymMat<Double>& S, const Int4& i, const Int4& j, const Int4& k, const Int4& l, const Double& resol)
58    {
59            // Ki, Kj, Kk, Kl, Kn -> Ki+Kk, -Kj, -Kk, Kj+Kl, Kj+Kk+Kn
60            // (Sii + Sjj + Sij*2) + (Skk + Sll + Skl*2) + (Sii + Sjj + Skk + Sij*2 + Sjk*2 + Sik*2) + (Sjj + Skk + Sll + Sjk*2 + Skl*2 + Sjl*2)
61            //      = (Sii + Sjj - Sij*2) + (Skk + Sll - Skl*2) + (Sii + Sjj + Skk - Sij*2 - Sjk*2 + Sik*2) + (Sjj + Skk + Sll - Sjk*2 - Skl*2 + Sjl*2).
62            return equiv_resol(
63                            (S(i,i)+S(j,j)+S(k,k)+S(l,l)+S(i,k)+S(j,l)+(S(i,j)+S(j,k)+S(k,l))*2.0)*2.0+S(j,j)+S(k,k),
64                            (S(i,i)+S(j,j)+S(k,k)+S(l,l)+S(i,k)+S(j,l)-(S(i,j)+S(j,k)+S(k,l))*2.0)*2.0+S(j,j)+S(k,k), resol);
65    }
66    
67    
68  inline bool check_equiv_m(const SymMat<Double>& lhs, //const Double& lhs_detS, const Double& lhs_detS_var,  inline bool check_equiv_m(const SymMat<Double>& lhs, //const Double& lhs_detS, const Double& lhs_detS_var,

Legend:
Removed from v.31  
changed lines
  Added in v.32

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26