CPPLapack
 All Classes Files Functions Variables Friends
Functions
dsymatrix-dsymatrix.hpp File Reference

Go to the source code of this file.

Functions

_dsymatrix operator+ (const dsymatrix &matA, const dsymatrix &matB)
_dsymatrix operator- (const dsymatrix &matA, const dsymatrix &matB)
_dgematrix operator* (const dsymatrix &matA, const dsymatrix &matB)

Function Documentation

_dsymatrix operator+ ( const dsymatrix matA,
const dsymatrix matB 
) [inline]

dsymatrix+dsymatrix operator

Definition at line 61 of file dsymatrix-dsymatrix.hpp.

References _(), dsymatrix::darray, i(), and dsymatrix::n.

{VERBOSE_REPORT;
#ifdef  CPPL_DEBUG
  if(matA.n!=matB.n){
    ERROR_REPORT;
    std::cerr << "These two matrises can not make a summation." << std::endl
              << "Your input was (" << matA.n << "x" << matA.n << ") + (" << matB.n << "x" << matB.n << ")." << std::endl;
    exit(1);
  }
#endif//CPPL_DEBUG

  long n = matA.n;
  dsymatrix newmat(n);
  for(long i=0; i<n; i++){
    for(long j=0; j<=i; j++){
      newmat.darray[j][i] =matA.darray[j][i] +matB.darray[j][i];
    }
  }
  
  return _(newmat);
}
_dsymatrix operator- ( const dsymatrix matA,
const dsymatrix matB 
) [inline]

dsymatrix-dsymatrix operator

Definition at line 85 of file dsymatrix-dsymatrix.hpp.

References _(), dsymatrix::darray, i(), and dsymatrix::n.

{VERBOSE_REPORT;
#ifdef  CPPL_DEBUG
  if(matA.n!=matB.n){
    ERROR_REPORT;
    std::cerr << "These two matrises can not make a subtraction." << std::endl
              << "Your input was (" << matA.n << "x" << matA.n << ") - (" << matB.n << "x" << matB.n << ")." << std::endl;
    exit(1);
  }
#endif//CPPL_DEBUG

  long n = matA.n;
  dsymatrix newmat(n);
  for(long i=0; i<n; i++){
    for(long j=0; j<=i; j++){
      newmat.darray[j][i] =matA.darray[j][i] -matB.darray[j][i];
    }
  }

  return _(newmat);
}
_dgematrix operator* ( const dsymatrix matA,
const dsymatrix matB 
) [inline]

dsymatrix*dsymatrix operator

Definition at line 109 of file dsymatrix-dsymatrix.hpp.

References _(), dgematrix::array, dsymatrix::array, dsymatrix::complete(), and dsymatrix::n.

{VERBOSE_REPORT;
#ifdef  CPPL_DEBUG
  if(matA.n!=matB.n){
    ERROR_REPORT;
    std::cerr << "These two matrises can not make a product." << std::endl
              << "Your input was (" << matA.n << "x" << matA.n << ") * (" << matB.n << "x" << matB.n << ")." << std::endl;
    exit(1);
  }
#endif//CPPL_DEBUG
  
  matA.complete();
  matB.complete();
  dgematrix newmat(matA.n, matA.n);
  
  dgemm_( 'n', 'n', matA.n, matB.n, matA.n, 1.0, matA.array, matA.n,
          matB.array, matB.n, 0.0, newmat.array, matA.n );
  
  return _(newmat);
}
 All Classes Files Functions Variables Friends