Develop and Download Open Source Software

Browse Subversion Repository

Diff of /Conograph/trunk/src/utility_lattice_reduction/put_Buerger_reduced_lattice.hh

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

revision 32 by rtomiyasu, Mon Jul 7 02:35:51 2014 UTC revision 33 by rtomiyasu, Wed Sep 7 04:38:51 2016 UTC
# Line 314  template<class T> Line 314  template<class T>
314  void putBuergerReducedMonoclinicP(const Int4& i, const Int4& j,  void putBuergerReducedMonoclinicP(const Int4& i, const Int4& j,
315                  SymMat<T>& S_red, NRMat<Int4>& trans_mat2)                  SymMat<T>& S_red, NRMat<Int4>& trans_mat2)
316  {  {
317          T zerro = 0;          static const T zerro = 0;
318    
319          assert(S_red.size()==3);          assert(S_red.size()==3);
320          assert(trans_mat2.ncols()==3);          assert(trans_mat2.ncols()==3);
# Line 340  void putBuergerReducedMonoclinicP(const Line 340  void putBuergerReducedMonoclinicP(const
340                          const Int8 m = iceil( S_red(i,j) / S_red(j,j) );                          const Int8 m = iceil( S_red(i,j) / S_red(j,j) );
341    
342                          S_red(i,i) += ( S_red(j,j) * m - S_red(i,j) * 2 ) * m;                          S_red(i,i) += ( S_red(j,j) * m - S_red(i,j) * 2 ) * m;
343                          assert( !(S_red(i,i) < zerro) );                          assert( zerro < S_red(i,i) );
344                          S_red(i,j) = S_red(j,j) * m - S_red(i,j);                          S_red(i,j) = S_red(j,j) * m - S_red(i,j);
345    
346                          for(Int4 l=0; l<irow; l++)                          for(Int4 l=0; l<irow; l++)
# Line 362  void putBuergerReducedMonoclinicP(const Line 362  void putBuergerReducedMonoclinicP(const
362                          const Int8 n = iceil( S_red(i,j) / S_red(i,i) );                          const Int8 n = iceil( S_red(i,j) / S_red(i,i) );
363    
364                          S_red(j,j) += ( S_red(i,i) * n - S_red(i,j) * 2 ) * n;                          S_red(j,j) += ( S_red(i,i) * n - S_red(i,j) * 2 ) * n;
365                          assert( !( S_red(j,j) < zerro ) );                          assert( zerro < S_red(j,j) );
366                          S_red(i,j) = S_red(i,i) * n - S_red(i,j);                          S_red(i,j) = S_red(i,i) * n - S_red(i,j);
367    
368                          for(Int4 l=0; l<irow; l++)                          for(Int4 l=0; l<irow; l++)
# Line 405  void putBuergerReducedMonoclinicB( Line 405  void putBuergerReducedMonoclinicB(
405          const Int4 iabc_axis = monoclinic_b_type.enumABCaxis();          const Int4 iabc_axis = monoclinic_b_type.enumABCaxis();
406          const Int4 ir = put_complement_set3(iabc_axis, ibase_axis);          const Int4 ir = put_complement_set3(iabc_axis, ibase_axis);
407    
408          T zerro = 0;          static const T zerro = 0;
409    
410          assert(S_red.size()==3);          assert(S_red.size()==3);
411          assert(trans_mat2.nrows()==0 || trans_mat2.ncols()==3);          assert(trans_mat2.nrows()==0 || trans_mat2.ncols()==3);
# Line 431  void putBuergerReducedMonoclinicB( Line 431  void putBuergerReducedMonoclinicB(
431                          const Int8 m2 = m1*2;                          const Int8 m2 = m1*2;
432    
433                          S_red( ibase_axis, ibase_axis ) += ( S_red( ir, ir ) * m2 - S_red( ibase_axis, ir ) * 2 ) * m2;                          S_red( ibase_axis, ibase_axis ) += ( S_red( ir, ir ) * m2 - S_red( ibase_axis, ir ) * 2 ) * m2;
434                          assert( !( S_red( ibase_axis, ibase_axis ) < zerro ) );                          assert( zerro < S_red( ibase_axis, ibase_axis ) );
435                          S_red( ibase_axis, ir ) = S_red( ir, ir ) * m2 - S_red( ibase_axis, ir );                          S_red( ibase_axis, ir ) = S_red( ir, ir ) * m2 - S_red( ibase_axis, ir );
436    
437                          for(Int4 l=0; l<irow; l++)                          for(Int4 l=0; l<irow; l++)
# Line 453  void putBuergerReducedMonoclinicB( Line 453  void putBuergerReducedMonoclinicB(
453                          const Int4 n = iceil( S_red( ibase_axis, ir ) / S_red( ibase_axis, ibase_axis ) );                          const Int4 n = iceil( S_red( ibase_axis, ir ) / S_red( ibase_axis, ibase_axis ) );
454    
455                          S_red( ir, ir ) += ( S_red( ibase_axis, ibase_axis ) * n - S_red( ibase_axis, ir ) * 2 ) * n;                          S_red( ir, ir ) += ( S_red( ibase_axis, ibase_axis ) * n - S_red( ibase_axis, ir ) * 2 ) * n;
456                          assert( !( S_red( ir, ir ) < zerro ) );                          assert( zerro < S_red( ir, ir ) );
457                          S_red( ibase_axis, ir ) = S_red( ibase_axis, ibase_axis ) * n - S_red( ibase_axis, ir );                          S_red( ibase_axis, ir ) = S_red( ibase_axis, ibase_axis ) * n - S_red( ibase_axis, ir );
458    
459                          for(Int4 l=0; l<irow; l++)                          for(Int4 l=0; l<irow; l++)

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

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