⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matrix.cc

📁 大型并行量子化学软件;支持密度泛函(DFT)。可以进行各种量子化学计算。支持CHARMM并行计算。非常具有应用价值。
💻 CC
📖 第 1 页 / 共 3 页
字号:
RefSCMatrixRefSCMatrix::block(int i) const{  BlockedSCMatrix *b = dynamic_cast<BlockedSCMatrix*>(pointer());  if (b) return b->block(i);  return *this;}///////////////////////////////////////////////////////////////////// RefSymmSCMatrix membersRefSymmSCMatrix::RefSymmSCMatrix(){}             RefSymmSCMatrix::RefSymmSCMatrix (const RefSymmSCMatrix & o):  Ref<SymmSCMatrix> (o){}             RefSymmSCMatrix::RefSymmSCMatrix (SymmSCMatrix * o):  Ref<SymmSCMatrix> (o){}RefSymmSCMatrix::~RefSymmSCMatrix (){}RefSymmSCMatrix&RefSymmSCMatrix::operator=(SymmSCMatrix* cr){  Ref<SymmSCMatrix>::operator=(cr);  return *this;}RefSymmSCMatrix&RefSymmSCMatrix::operator=(const RefSymmSCMatrix & c){  Ref<SymmSCMatrix>::operator=(c);  return *this;}RefSymmSCMatrix::RefSymmSCMatrix(const RefSCDimension&a,                                 const Ref<SCMatrixKit>&k){  assign_pointer(k->symmmatrix(a));}voidRefSymmSCMatrix::set_element(int i, int j, double a) const{  require_nonnull();  pointer()->set_element(i,j,a);}voidRefSymmSCMatrix::accumulate_element(int i, int j, double a) const{  require_nonnull();  pointer()->accumulate_element(i,j,a);}doubleRefSymmSCMatrix::get_element(int i, int j) const{  require_nonnull();  return pointer()->get_element(i,j);}RefSCMatrixRefSymmSCMatrix::get_subblock(int br, int er, int bc, int ec){  require_nonnull();    RefSCMatrix ret = pointer()->get_subblock(br,er,bc,ec);  return ret;}RefSymmSCMatrixRefSymmSCMatrix::get_subblock(int br, int er){  require_nonnull();    RefSymmSCMatrix ret = pointer()->get_subblock(br,er);  return ret;}voidRefSymmSCMatrix::assign_subblock(const RefSCMatrix& sb,                                 int br, int er, int bc, int ec){  require_nonnull();  sb.require_nonnull();  pointer()->assign_subblock(sb.pointer(),br,er,bc,ec);}voidRefSymmSCMatrix::assign_subblock(const RefSymmSCMatrix& sb, int br, int er){  require_nonnull();  sb.require_nonnull();  pointer()->assign_subblock(sb.pointer(),br,er);}voidRefSymmSCMatrix::accumulate_subblock(const RefSCMatrix& sb,                                     int br, int er, int bc, int ec){  require_nonnull();  sb.require_nonnull();  pointer()->accumulate_subblock(sb.pointer(),br,er,bc,ec);}voidRefSymmSCMatrix::accumulate_subblock(const RefSymmSCMatrix& sb, int br, int er){  require_nonnull();  sb.require_nonnull();  pointer()->accumulate_subblock(sb.pointer(),br,er);}RefSCVectorRefSymmSCMatrix::get_row(int i){  require_nonnull();    RefSCVector ret = pointer()->get_row(i);  return ret;}voidRefSymmSCMatrix::assign_row(const RefSCVector& v, int i){  require_nonnull();  v.require_nonnull();  pointer()->assign_row(v.pointer(),i);}voidRefSymmSCMatrix::accumulate_row(const RefSCVector& v, int i){  require_nonnull();  v.require_nonnull();  pointer()->accumulate_row(v.pointer(),i);}voidRefSymmSCMatrix::accumulate_symmetric_product(const RefSCMatrix& a) const{  require_nonnull();  pointer()->accumulate_symmetric_product(a.pointer());}voidRefSymmSCMatrix::accumulate_symmetric_sum(const RefSCMatrix& a) const{  require_nonnull();  pointer()->accumulate_symmetric_sum(a.pointer());}voidRefSymmSCMatrix::accumulate_transform(const RefSCMatrix& a,                                      const RefSymmSCMatrix&b,                                      SCMatrix::Transform t) const{  require_nonnull();  pointer()->accumulate_transform(a.pointer(),b.pointer(),t);}voidRefSymmSCMatrix::accumulate_transform(const RefSCMatrix& a,                                      const RefDiagSCMatrix&b,                                      SCMatrix::Transform t) const{  require_nonnull();  pointer()->accumulate_transform(a.pointer(),b.pointer(),t);}voidRefSymmSCMatrix::accumulate_transform(const RefSymmSCMatrix& a,                                      const RefSymmSCMatrix&b) const{  require_nonnull();  pointer()->accumulate_transform(a.pointer(),b.pointer());}RefSymmSCMatrixRefSymmSCMatrix::operator+(const RefSymmSCMatrix&a) const{  require_nonnull();  a.require_nonnull();  RefSymmSCMatrix ret(dim(),kit());    ret->assign(pointer());  ret->accumulate(a.pointer());  return ret;}RefSymmSCMatrixRefSymmSCMatrix::operator-(const RefSymmSCMatrix&a) const{  require_nonnull();  a.require_nonnull();  RefSymmSCMatrix ret(dim(),kit());    ret->assign(a.pointer());  ret->scale(-1.0);  ret->accumulate(pointer());  return ret;}RefSymmSCMatrixRefSymmSCMatrix::i() const{  require_nonnull();    RefSymmSCMatrix ret;  ret = clone();  ret->assign(pointer());  ret->invert_this();  return ret;}RefSymmSCMatrixRefSymmSCMatrix::gi() const{  require_nonnull();    RefSymmSCMatrix ret;  ret = clone();  ret->assign(pointer());  ret->gen_invert_this();  return ret;}intRefSymmSCMatrix::n() const{  if (null()) return 0;  else return pointer()->dim()->n();}RefSCDimensionRefSymmSCMatrix::dim() const{  if (null()) return 0;  else return pointer()->dim();}Ref<SCMatrixKit>RefSymmSCMatrix::kit() const{  if (null()) return 0;  else return pointer()->kit();}SymmSCMatrixdoubleRefSymmSCMatrix::operator()(int i,int j) const{  return SymmSCMatrixdouble(pointer(),i,j);}RefSymmSCMatrixRefSymmSCMatrix::clone() const{  RefSymmSCMatrix r = kit()->symmmatrix(dim());  return r;}RefDiagSCMatrixRefSymmSCMatrix::eigvals() const{  if (null()) return 0;  RefDiagSCMatrix vals = kit()->diagmatrix(dim());  RefSCMatrix vecs = kit()->matrix(dim(),dim());  diagonalize(vals,vecs);  return vals;}RefSCMatrixRefSymmSCMatrix::eigvecs() const{  if (null()) return 0;  RefDiagSCMatrix vals = kit()->diagmatrix(dim());  RefSCMatrix vecs = kit()->matrix(dim(),dim());  diagonalize(vals,vecs);  return vecs;}doubleRefSymmSCMatrix::solve_lin(const RefSCVector& v) const{  require_nonnull();    RefSymmSCMatrix ret = clone();  ret->assign(pointer());  return ret->solve_this(v.pointer());}doubleRefSymmSCMatrix::determ() const{  require_nonnull();    RefSymmSCMatrix ret = clone();  ret->assign(pointer());  return ret->determ_this();}doubleRefSymmSCMatrix::trace() const{  require_nonnull();  return pointer()->trace();}voidRefSymmSCMatrix::diagonalize(const RefDiagSCMatrix& vals,                             const RefSCMatrix& vecs) const{  require_nonnull();  pointer()->diagonalize(vals.pointer(),vecs.pointer());}RefSymmSCMatrixRefSymmSCMatrix::copy() const{  if (null()) return 0;  RefSymmSCMatrix v = kit()->symmmatrix(dim());  v.assign(*this);  return v;}voidRefSymmSCMatrix::randomize() const{  require_nonnull();  pointer()->randomize();}voidRefSymmSCMatrix::assign(const RefSymmSCMatrix&a) const{  require_nonnull();  pointer()->assign(a.pointer());}voidRefSymmSCMatrix::assign(const double*v) const{  require_nonnull();  pointer()->assign(v);}voidRefSymmSCMatrix::assign(const double**v) const{  require_nonnull();  pointer()->assign(v);}voidRefSymmSCMatrix::convert(double*v) const{  require_nonnull();  pointer()->convert(v);}voidRefSymmSCMatrix::convert(double**v) const{  require_nonnull();  pointer()->convert(v);}voidRefSymmSCMatrix::scale(double a) const{  require_nonnull();  pointer()->scale(a);}voidRefSymmSCMatrix::assign(double a) const{  require_nonnull();  pointer()->assign(a);}voidRefSymmSCMatrix::accumulate(const RefSymmSCMatrix&a) const{  require_nonnull();  pointer()->accumulate(a.pointer());}voidRefSymmSCMatrix::element_op(const Ref<SCElementOp>&op) const{  if (nonnull()) pointer()->element_op(op);}voidRefSymmSCMatrix::element_op(const Ref<SCElementOp2>&op,                            const RefSymmSCMatrix&m) const{  if (nonnull()) pointer()->element_op(op,m.pointer());}voidRefSymmSCMatrix::element_op(const Ref<SCElementOp3>&op,                            const RefSymmSCMatrix&m,                            const RefSymmSCMatrix&n) const{  if (nonnull()) pointer()->element_op(op,m.pointer(),n.pointer());}voidRefSymmSCMatrix::print(ostream& out) const{  print(0,out);}voidRefSymmSCMatrix::print(const char*title,ostream&out, int precision) const{  if (nonnull()) {      pointer()->print(title,out,precision);    }  else {      if (title) out << endl << title << endl;      out << "null matrix" << endl;    }}RefSCMatrixRefSymmSCMatrix::operator*(const RefSCMatrix&a) const{  require_nonnull();  a.require_nonnull();  RefSCMatrix r = kit()->matrix(dim(),a->coldim());  r->assign(0.0);  r->accumulate_product(pointer(),a.pointer());  return r;}RefSCMatrixRefSymmSCMatrix::operator*(const RefSymmSCMatrix&a) const{  require_nonnull();  a.require_nonnull();  RefSCMatrix r = kit()->matrix(dim(),a->dim());  r->assign(0.0);  r->accumulate_product(pointer(),a.pointer());  return r;}RefSCVectorRefSymmSCMatrix::operator*(const RefSCVector&a) const{  require_nonnull();  a.require_nonnull();  RefSCVector r = kit()->vector(dim());  r->assign(0.0);  r->accumulate_product(pointer(),a.pointer());  return r;}RefSymmSCMatrixRefSymmSCMatrix::operator *(double a) const{  RefSymmSCMatrix r(copy());  r.scale(a);  return r;}RefSymmSCMatrixoperator *(double a, const RefSymmSCMatrix& v){  return v*a;}voidRefSymmSCMatrix::accumulate_symmetric_outer_product(const RefSCVector&v) const{  require_nonnull();  pointer()->accumulate_symmetric_outer_product(v.pointer());}doubleRefSymmSCMatrix::scalar_product(const RefSCVector&v) const{  if (null()) return 0.0;  return pointer()->scalar_product(v.pointer());}voidRefSymmSCMatrix::save(StateOut&s){  if (null()) s.put(0);  else {      s.put(1);      pointer()->save(s);    }}voidRefSymmSCMatrix::restore(StateIn&s){  int have_matrix;  s.get(have_matrix);  if (have_matrix && nonnull()) {      pointer()->restore(s);    }  else if (have_matrix) {      ExEnv::errn() << "RefSymmSCMatrix::restore: "           << "matrix not properly initialized" << endl;      abort();    }  else {      clear();    }}intRefSymmSCMatrix::nblock() const{  BlockedSymmSCMatrix *b = dynamic_cast<BlockedSymmSCMatrix*>(pointer());  if (b) return b->nblocks();  return 1;}RefSymmSCMatrixRefSymmSCMatrix::block(int i) const{  BlockedSymmSCMatrix *b = dynamic_cast<BlockedSymmSCMatrix*>(pointer());  if (b) return b->block(i);  return *this;}///////////////////////////////////////////////////////////////////// RefDiagSCMatrix membersRefDiagSCMatrix::RefDiagSCMatrix(){}             RefDiagSCMatrix::RefDiagSCMatrix (const RefDiagSCMatrix & o):  Ref<DiagSCMatrix> (o){}             RefDiagSCMatrix::RefDiagSCMatrix (DiagSCMatrix * o):  Ref<DiagSCMatrix> (o){}RefDiagSCMatrix::~RefDiagSCMatrix (){}RefDiagSCMatrix&RefDiagSCMatrix::operator=(DiagSCMatrix* cr){  Ref<DiagSCMatrix>::operator=(cr);  return *this;}RefDiagSCMatrix&RefDiagSCMatrix::operator=(const RefDiagSCMatrix & c){  Ref<DiagSCMatrix>::operator=(c);  return *this;}RefDiagSCMatrix::RefDiagSCMatrix(const RefSCDimension&a,                                 const Ref<SCMatrixKit>&k){  a.require_nonnull();  assign_pointer(k->diagmatrix(a));}voidRefDiagSCMatrix::set_element(int i, double a) const{  require_nonnull();  pointer()->set_element(i,a);}voidRefDiagSCMatrix::accumulate_element(int i, double a) const{  require_nonnull();  pointer()->accumulate_element(i,a);}doubleRefDiagSCMatrix::get_element(int i) const{  require_nonnull();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -