#include <_dgematrix.hpp>
Definition at line 3 of file _dgematrix.hpp.
|
|
_dgematrix constructor without arguments Definition at line 3 of file _dgematrix-constructor.hpp. References Array, Desc, M, Ml, N, and Nl.
00004 {
00005 //////// initialize ////////
00006 M =N =0;
00007 Ml =Nl =0;
00008 Desc[0]=1; Desc[1]=icontxt; Desc[2]=0; Desc[3]=0; Desc[4]=mb; Desc[5]=nb;
00009 Desc[6]=0; Desc[7]=0; Desc[8]=max(1,Ml);
00010 Array =new double[0];
00011
00012 #ifdef CPPSL_DEBUG
00013 std::cerr << "# [NOTE] _dgematrix::_dgematrix() "
00014 << "A new 0x0 matrix at " << Array
00015 << " has been made." << std::endl;
00016 #endif//CPPSL_DEBUG
00017 }
|
|
|
_dgematrix copy constructor Definition at line 25 of file _dgematrix-constructor.hpp. References Array, Desc, M, Ml, N, and Nl.
00026 {
00027 //////// initialize ////////
00028 M =mat.M; N =mat.N;
00029 Ml =mat.Ml; Nl =mat.Nl;
00030 for(int i=0; i<9; i++){ Desc[i] =mat.Desc[i]; }
00031 Array =mat.Array;
00032
00033 #ifdef CPPSL_DEBUG
00034 std::cerr << "# [NOTE] _dgematrix::_dgematrix(const _dgematrix&) "
00035 << "A new matrix at " << Array << " has been made." << std::endl;
00036 #endif//CPPSL_DEBUG
00037 }
|
|
|
_dgematrix constructor to cast dgematrix Definition at line 41 of file _dgematrix-constructor.hpp. References dgematrix::Array, Array, dgematrix::Desc, Desc, dgematrix::M, M, dgematrix::Ml, Ml, dgematrix::N, N, dgematrix::Nl, and Nl.
00042 {
00043 M =mat.M; N =mat.N;
00044 Ml =mat.Ml; Nl =mat.Nl;
00045 for(int i=0; i<9; i++){ Desc[i] =mat.Desc[i]; }
00046 Array =mat.Array;
00047
00048 #ifdef CPPSL_DEBUG
00049 std::cerr << "# [NOTE] _dgematrix::_dgematrix(const dgematrix&) "
00050 << "A new matrix pointing at " << Array << " has been made."
00051 << std::endl;
00052 #endif//CPPSL_DEBUG
00053 }
|
|
||||||||||||
|
_dgematrix constructor with size specification Definition at line 61 of file _dgematrix-constructor.hpp. References Array, Desc, M, Ml, N, and Nl.
00062 {
00063 #ifdef CPPSL_DEBUG
00064 if( _m<0 || _n<0 ){
00065 std::cerr << "[ERROR] _dgematrix::_dgematrix(const long, const long)"
00066 << std::endl
00067 << "Matrix sizes must be positive integers. " << std::endl
00068 << "Your input was (" << _m << "," << _n << ")." << std::endl;
00069 exit(1);
00070 }
00071 #endif//CPPSL_DEBUG
00072
00073 //////// initialize ////////
00074 M =_m; N =_n;
00075 Ml =numroc_( M, mb, myrow, 0, nprow );
00076 Nl =numroc_( N, nb, mycol, 0, npcol );
00077 Desc[0]=1; Desc[1]=icontxt; Desc[2]=M; Desc[3]=N; Desc[4]=mb; Desc[5]=nb;
00078 Desc[6]=0; Desc[7]=0; Desc[8]=max(1,Ml);
00079 Array =new double[Ml*Nl];
00080
00081 #ifdef CPPSL_DEBUG
00082 std::cerr << "# [NOTE] _dgematrix(const long&, const long&) "
00083 << "A new matrix at " << Array << " has been made." << std::endl;
00084 #endif//CPPSL_DEBUG
00085 }
|
|
|
_dgematrix destructor Definition at line 93 of file _dgematrix-constructor.hpp.
00094 {
00095 #ifdef CPPSL_DEBUG
00096 std::cerr << "# [NOTE] _dgematrix::~_dgematrix() "
00097 << "A _dgematrix is going to be destructed." << std::endl;
00098 #endif//CPPSL_DEBUG
00099 //////// do nothing ////////
00100 }
|
|
||||||||||||
|
operator() for const object Definition at line 3 of file _dgematrix-io.hpp. References Array, Desc, M, and N. Referenced by identity().
00004 {
00005 #ifdef CPPSL_DEBUG
00006 if( i<0 || j<0 || M<=i || N<=j ){
00007 std::cerr << "[ERROR] _dgematrix::operator()"
00008 << "(const long&, const long&) const" << std::endl
00009 << "The required component is out of the matrix size."
00010 << std::endl
00011 << "Your input was (" << i << "," << j << ")." << std::endl;
00012 exit(1);
00013 }
00014 #endif//CPPSL_DEBUG
00015
00016 return CPPSL_double( Array, i, j, Desc );
00017 }
|
|
|
destroy all the matrix data Definition at line 3 of file _dgematrix-misc.hpp. References Array. Referenced by operator *(), operator+(), dgematrix::operator+=(), operator-(), dgematrix::operator-=(), operator<<(), and t().
|
|
|
shallow copy dgematrix into _dgematrix and set dgematrix an empty matrix Definition at line 16 of file _dgematrix-misc.hpp. References dgematrix::Array, Array, dgematrix::Desc, Desc, dgematrix::M, M, dgematrix::Ml, Ml, dgematrix::N, N, dgematrix::Nl, and Nl.
|
|
|
change the matrix into a zero matrix Definition at line 36 of file _dgematrix-misc.hpp.
|
|
|
change the matrix into an identity matrix Definition at line 43 of file _dgematrix-misc.hpp. References Array, M, Ml, N, Nl, and operator()().
00044 {
00045 #ifdef CPPSL_DEBUG
00046 if(M!=N){
00047 std::cerr << "[ERROR] _dgematrix::identity()" << std::endl
00048 << "Only square matrix can be a identity matrix." << std::endl
00049 << "The matrix size was " << M << "x" << N << "." << std::endl;
00050 exit(1);
00051 }
00052 #endif//CPPSL_DEBUG
00053
00054 for(long i=0; i<Ml*Nl; i++){ Array[i] =0.0; }
00055 for(long i=0; i<M; i++){ operator()(i,i) =1.0; }
00056 }
|
|
|
Definition at line 113 of file _dgematrix.hpp. |
|
|
Definition at line 116 of file _dgematrix.hpp. |
|
|
Definition at line 117 of file _dgematrix.hpp. |
|
|
Definition at line 118 of file _dgematrix.hpp. |
|
|
Definition at line 119 of file _dgematrix.hpp. |
|
||||||||||||
|
Definition at line 67 of file dgematrix-io.hpp.
|
|
|
return transposed _dgematrix Definition at line 3 of file _dgematrix-calc.hpp.
|
|
|
+_dgematrix operator Definition at line 3 of file _dgematrix-unary.hpp.
00004 {
00005 return mat;
00006 }
|
|
|
-_dgematrix operator Definition at line 10 of file _dgematrix-unary.hpp.
|
|
||||||||||||
|
dgematrix+dgematrix operator Definition at line 84 of file dgematrix-dgematrix.hpp.
00085 {
00086 #ifdef CPPSL_DEBUG
00087 if(matA.N!=matB.N || matA.M!=matB.M){
00088 std::cerr << "[ERROR] operator+(const dgematrix&, const dgematrix&)"
00089 << std::endl
00090 << "These two matrises can not make a summation." << std::endl
00091 << "Your input was (" << matA.M << "x" << matA.N << ") + ("
00092 << matB.M << "x" << matB.N << ")." << std::endl;
00093 exit(1);
00094 }
00095 #endif//CPPSL_DEBUG
00096
00097 _dgematrix newmat(matA.M,matA.N);
00098 for(long i=0; i<newmat.Ml*newmat.Nl; i++){
00099 newmat.Array[i] =matA.Array[i]+matB.Array[i];
00100 }
00101
00102 return newmat;
00103 }
|
|
||||||||||||
|
dgematrix+_dgematrix operator Definition at line 86 of file dgematrix-_dgematrix.hpp.
00087 {
00088 #ifdef CPPSL_DEBUG
00089 if(matA.N!=matB.N || matA.M!=matB.M){
00090 std::cerr << "[ERROR] operator+(const dgematrix&, const _dgematrix&)"
00091 << std::endl
00092 << "These two matrises can not make a summation." << std::endl
00093 << "Your input was (" << matA.M << "x" << matA.N << ") + ("
00094 << matB.M << "x" << matB.N << ")." << std::endl;
00095 exit(1);
00096 }
00097 #endif//CPPSL_DEBUG
00098
00099 for(long i=0; i<matA.Ml*matA.Nl; i++){ matB.Array[i] +=matA.Array[i]; }
00100
00101 return matB;
00102 }
|
|
||||||||||||
|
_dgematrix+dgematrix operator Definition at line 3 of file _dgematrix-dgematrix.hpp.
00004 {
00005 #ifdef CPPSL_DEBUG
00006 if(matA.N!=matB.N || matA.M!=matB.M){
00007 std::cerr << "[ERROR] operator+(const _dgematrix&, const dgematrix&)"
00008 << std::endl
00009 << "These two matrises can not make a summation." << std::endl
00010 << "Your input was (" << matA.M << "x" << matA.N << ") + ("
00011 << matB.M << "x" << matB.N << ")." << std::endl;
00012 exit(1);
00013 }
00014 #endif//CPPSL_DEBUG
00015
00016 for(long i=0; i<matA.Ml*matA.Nl; i++){ matA.Array[i] +=matB.Array[i]; }
00017
00018 return matA;
00019 }
|
|
||||||||||||
|
_dgematrix+_dgematrix operator Definition at line 3 of file _dgematrix-_dgematrix.hpp.
00004 {
00005 #ifdef CPPSL_DEBUG
00006 if(matA.N!=matB.N || matA.M!=matB.M){
00007 std::cerr << "[ERROR] operator+(const _dgematrix&, const _dgematrix&)"
00008 << std::endl
00009 << "These two matrises can not make a summation." << std::endl
00010 << "Your input was (" << matA.M << "x" << matA.N << ") + ("
00011 << matB.M << "x" << matB.N << ")." << std::endl;
00012 exit(1);
00013 }
00014 #endif//CPPSL_DEBUG
00015
00016 for(long i=0; i<matA.Ml*matA.Nl; i++){ matA.Array[i] +=matB.Array[i]; }
00017
00018 matB.destroy();
00019 return matA;
00020 }
|
|
|
-dgematrix operator Definition at line 10 of file dgematrix-unary.hpp.
|
|
||||||||||||
|
dgematrix-dgematrix operator Definition at line 107 of file dgematrix-dgematrix.hpp.
00108 {
00109 #ifdef CPPSL_DEBUG
00110 if(matA.N!=matB.N || matA.M!=matB.M){
00111 std::cerr << "[ERROR] operator-(const dgematrix&, const dgematrix&)"
00112 << std::endl
00113 << "These two matrises can not make a subtraction." << std::endl
00114 << "Your input was (" << matA.M << "x" << matA.N << ") - ("
00115 << matB.M << "x" << matB.N << ")." << std::endl;
00116 exit(1);
00117 }
00118 #endif//CPPSL_DEBUG
00119
00120 _dgematrix newmat(matA.M,matA.N);
00121 for(long i=0; i<newmat.Ml*newmat.Nl; i++){
00122 newmat.Array[i] =matA.Array[i]-matB.Array[i];
00123 }
00124
00125 return newmat;
00126 }
|
|
||||||||||||
|
dgematrix-_dgematrix operator Definition at line 106 of file dgematrix-_dgematrix.hpp.
00107 {
00108 #ifdef CPPSL_DEBUG
00109 if(matA.N!=matB.N || matA.M!=matB.M){
00110 std::cerr << "[ERROR] operator-(const dgematrix&, const _dgematrix&)"
00111 << std::endl
00112 << "These two matrises can not make a subtraction." << std::endl
00113 << "Your input was (" << matA.M << "x" << matA.N << ") - ("
00114 << matB.M << "x" << matB.N << ")." << std::endl;
00115 exit(1);
00116 }
00117 #endif//CPPSL_DEBUG
00118
00119 for(long i=0; i<matA.Ml*matA.Nl; i++){
00120 matB.Array[i] =matA.Array[i]-matB.Array[i];
00121 }
00122
00123 return matB;
00124 }
|
|
||||||||||||
|
_dgematrix-dgematrix operator Definition at line 23 of file _dgematrix-dgematrix.hpp.
00024 {
00025 #ifdef CPPSL_DEBUG
00026 if(matA.N!=matB.N || matA.M!=matB.M){
00027 std::cerr << "[ERROR] operator-(const _dgematrix&, const dgematrix&)"
00028 << std::endl
00029 << "These two matrises can not make a subtraction." << std::endl
00030 << "Your input was (" << matA.M << "x" << matA.N << ") - ("
00031 << matB.M << "x" << matB.N << ")." << std::endl;
00032 exit(1);
00033 }
00034 #endif//CPPSL_DEBUG
00035
00036 for(long i=0; i<matA.Ml*matA.Nl; i++){ matA.Array[i] -=matB.Array[i]; }
00037
00038 return matA;
00039 }
|
|
||||||||||||
|
_dgematrix-_dgematrix operator Definition at line 24 of file _dgematrix-_dgematrix.hpp.
00025 {
00026 #ifdef CPPSL_DEBUG
00027 if(matA.N!=matB.N || matA.M!=matB.M){
00028 std::cerr << "[ERROR] operator-(const _dgematrix&, const _dgematrix&)"
00029 << std::endl
00030 << "These two matrises can not make a subtraction." << std::endl
00031 << "Your input was (" << matA.M << "x" << matA.N << ") - ("
00032 << matB.M << "x" << matB.N << ")." << std::endl;
00033 exit(1);
00034 }
00035 #endif//CPPSL_DEBUG
00036
00037 for(long i=0; i<matA.Ml*matA.Nl; i++){ matA.Array[i] -=matB.Array[i]; }
00038
00039 matB.destroy();
00040 return matA;
00041 }
|
|
||||||||||||
|
dgematrix*dgematrix operator Definition at line 130 of file dgematrix-dgematrix.hpp.
00131 {
00132 #ifdef CPPSL_DEBUG
00133 if(matA.N!=matB.M){
00134 std::cerr << "[ERROR] operator*(const dgematrix&, const dgematrix&)"
00135 << std::endl
00136 << "These two matrises can not make a product." << std::endl
00137 << "Your input was (" << matA.M << "x" << matA.N << ") * ("
00138 << matB.M << "x" << matB.N << ")." << std::endl;
00139 exit(1);
00140 }
00141 #endif//CPPSL_DEBUG
00142
00143 _dgematrix newmat( matA.M, matB.N );
00144 pdgemm_( 'N', 'N', matA.M, matB.N, matA.N, 1.0,
00145 matA.Array, 1, 1, matA.Desc,
00146 matB.Array, 1, 1, matB.Desc, 0.0,
00147 newmat.Array, 1, 1, newmat.Desc );
00148
00149 return newmat;
00150 }
|
|
||||||||||||
|
dgematrix*_dgematrix operator Definition at line 128 of file dgematrix-_dgematrix.hpp.
00129 {
00130 #ifdef CPPSL_DEBUG
00131 if(matA.N!=matB.M){
00132 std::cerr << "[ERROR] operator*(const dgematrix&, const _dgematrix&)"
00133 << std::endl
00134 << "These two matrises can not make a product." << std::endl
00135 << "Your input was (" << matA.M << "x" << matA.N << ") * ("
00136 << matB.M << "x" << matB.N << ")." << std::endl;
00137 exit(1);
00138 }
00139 #endif//CPPSL_DEBUG
00140
00141 _dgematrix newmat( matA.M, matB.N );
00142 pdgemm_( 'N', 'N', matA.M, matB.N, matA.N, 1.0,
00143 matA.Array, 1, 1, matA.Desc,
00144 matB.Array, 1, 1, matB.Desc, 0.0,
00145 newmat.Array, 1, 1, newmat.Desc );
00146
00147 matB.destroy();
00148 return newmat;
00149 }
|
|
||||||||||||
|
_dgematrix*dgematrix operator Definition at line 43 of file _dgematrix-dgematrix.hpp.
00044 {
00045 #ifdef CPPSL_DEBUG
00046 if(matA.N!=matB.M){
00047 std::cerr << "[ERROR] operator*(const _dgematrix&, const dgematrix&)"
00048 << std::endl
00049 << "These two matrises can not make a product." << std::endl
00050 << "Your input was (" << matA.M << "x" << matA.N << ") * ("
00051 << matB.M << "x" << matB.N << ")." << std::endl;
00052 exit(1);
00053 }
00054 #endif//CPPSL_DEBUG
00055
00056 _dgematrix newmat( matA.M, matB.N );
00057 pdgemm_( 'N', 'N', matA.M, matB.N, matA.N, 1.0,
00058 matA.Array, 1, 1, matA.Desc,
00059 matB.Array, 1, 1, matB.Desc, 0.0,
00060 newmat.Array, 1, 1, newmat.Desc );
00061
00062 matA.destroy();
00063 return newmat;
00064 }
|
|
||||||||||||
|
_dgematrix*_dgematrix operator Definition at line 45 of file _dgematrix-_dgematrix.hpp.
00046 {
00047 #ifdef CPPSL_DEBUG
00048 if(matA.N!=matB.M){
00049 std::cerr << "[ERROR] operator*(const _dgematrix&, const _dgematrix&)"
00050 << std::endl
00051 << "These two matrises can not make a product." << std::endl
00052 << "Your input was (" << matA.M << "x" << matA.N << ") * ("
00053 << matB.M << "x" << matB.N << ")." << std::endl;
00054 exit(1);
00055 }
00056 #endif//CPPSL_DEBUG
00057
00058 _dgematrix newmat( matA.M, matB.N );
00059 pdgemm_( 'N', 'N', matA.M, matB.N, matA.N, 1.0,
00060 matA.Array, 1, 1, matA.Desc,
00061 matB.Array, 1, 1, matB.Desc, 0.0,
00062 newmat.Array, 1, 1, newmat.Desc );
00063
00064 matA.destroy();
00065 matB.destroy();
00066 return newmat;
00067 }
|
|
||||||||||||
|
dgematrix*double operator Definition at line 23 of file dgematrix-double.hpp.
|
|
||||||||||||
|
_dgematrix*double operator Definition at line 3 of file _dgematrix-double.hpp.
|
|
||||||||||||
|
double*_dgematrix operator Definition at line 3 of file double-_dgematrix.hpp.
|
|
||||||||||||
|
double*dgematrix operator Definition at line 3 of file double-dgematrix.hpp.
|
|
||||||||||||
|
dcovector*drovector operator Definition at line 3 of file dcovector-drovector.hpp.
00004 {
00005 #ifdef CPPSL_DEBUG
00006 if(covec.L!=rovec.L){
00007 std::cerr << "[ERROR] operator*(const dcovector&, const drovector&)"
00008 << std::endl
00009 << "These two vectors can not make a product." << std::endl
00010 << "Your input was (" << covec.L << ") * (" << rovec.L << ")."
00011 << std::endl;
00012 exit(1);
00013 }
00014 #endif//CPPSL_DEBUG
00015
00016 _dgematrix newmat(covec.L, covec.L);
00017 for(long i=0; i<newmat.M; i++){ for(long j=0; j<newmat.N; j++){
00018 newmat(i,j) =covec(i)*rovec(j);
00019 }}
00020
00021 return newmat;
00022 }
|
|
||||||||||||
|
dcovector*_drovector operator Definition at line 3 of file dcovector-_drovector.hpp.
00004 {
00005 #ifdef CPPSL_DEBUG
00006 if(covec.L!=rovec.L){
00007 std::cerr << "[ERROR] operator*(const dcovector&, const _drovector&)"
00008 << std::endl
00009 << "These two vectors can not make a product." << std::endl
00010 << "Your input was (" << covec.L << ") * (" << rovec.L << ")."
00011 << std::endl;
00012 exit(1);
00013 }
00014 #endif//CPPSL_DEBUG
00015
00016 _dgematrix newmat(covec.L, covec.L);
00017 for(long i=0; i<newmat.M; i++){ for(long j=0; j<newmat.N; j++){
00018 newmat(i,j) =covec(i)*rovec(j);
00019 }}
00020
00021 rovec.destroy();
00022 return newmat;
00023 }
|
|
||||||||||||
|
_dcovector*drovector operator Definition at line 3 of file _dcovector-drovector.hpp.
00004 {
00005 #ifdef CPPSL_DEBUG
00006 if(covec.L!=rovec.L){
00007 std::cerr << "[ERROR] operator*(const _dcovector&, const drovector&)"
00008 << std::endl
00009 << "These two vectors can not make a product." << std::endl
00010 << "Your input was (" << covec.L << ") * (" << rovec.L << ")."
00011 << std::endl;
00012 exit(1);
00013 }
00014 #endif//CPPSL_DEBUG
00015
00016 _dgematrix newmat(covec.L, covec.L);
00017 for(long i=0; i<newmat.M; i++){ for(long j=0; j<newmat.N; j++){
00018 newmat(i,j) =covec(i)*rovec(j);
00019 }}
00020
00021 covec.destroy();
00022 return newmat;
00023 }
|
|
||||||||||||
|
_dcovector*_drovector operator Definition at line 3 of file _dcovector-_drovector.hpp.
00004 {
00005 #ifdef CPPSL_DEBUG
00006 if(covec.L!=rovec.L){
00007 std::cerr << "[ERROR] operator*(const _dcovector&, const _drovector&)"
00008 << std::endl
00009 << "These two vectors can not make a product." << std::endl
00010 << "Your input was (" << covec.L << ") * (" << rovec.L << ")."
00011 << std::endl;
00012 exit(1);
00013 }
00014 #endif//CPPSL_DEBUG
00015
00016 _dgematrix newmat(covec.L, covec.L);
00017 for(long i=0; i<newmat.M; i++){ for(long j=0; j<newmat.N; j++){
00018 newmat(i,j) =covec(i)*rovec(j);
00019 }}
00020
00021 covec.destroy();
00022 rovec.destroy();
00023 return newmat;
00024 }
|
|
||||||||||||
|
drovector*_dgematrix operator Definition at line 3 of file drovector-_dgematrix.hpp.
00004 {
00005 #ifdef CPPSL_DEBUG
00006 if( vec.L!=mat.M ){
00007 std::cerr << "[ERROR] operator*(const drovector&, const _dgematrix&)"
00008 << std::endl
00009 << "These vector and matrix can not make a product." << std::endl
00010 << "Your input was (" << vec.L << ") * ("
00011 << mat.M << "x" << mat.N << ")." << std::endl;
00012 exit(1);
00013 }
00014 #endif//CPPSL_DEBUG
00015
00016 _drovector newvec(mat.N);
00017 pdgemv_( 'T', mat.M, mat.N, 1.0, mat.Array, 1, 1, mat.Desc,
00018 vec.Array, 1, 1, vec.Desc, 1, 0.0,
00019 newvec.Array, 1, 1, newvec.Desc, 1 );
00020
00021 mat.destroy();
00022 return newvec;
00023 }
|
|
||||||||||||
|
_drovector*_dgematrix operator Definition at line 3 of file _drovector-_dgematrix.hpp.
00004 {
00005 #ifdef CPPSL_DEBUG
00006 if( vec.L!=mat.M ){
00007 std::cerr << "[ERROR] operator*(const _drovector&, const _dgematrix&)"
00008 << std::endl
00009 << "These vector and matrix can not make a product." << std::endl
00010 << "Your input was (" << vec.L << ") * ("
00011 << mat.M << "x" << mat.N << ")." << std::endl;
00012 exit(1);
00013 }
00014 #endif//CPPSL_DEBUG
00015
00016 _drovector newvec(mat.N);
00017 pdgemv_( 'T', mat.M, mat.N, 1.0, mat.Array, 1, 1, mat.Desc,
00018 vec.Array, 1, 1, vec.Desc, 1, 0.0,
00019 newvec.Array, 1, 1, newvec.Desc, 1 );
00020
00021 vec.destroy();
00022 mat.destroy();
00023 return newvec;
00024 }
|
|
||||||||||||
|
_dgematrix*dcovector operator Definition at line 3 of file _dgematrix-dcovector.hpp.
00004 {
00005 #ifdef CPPSL_DEBUG
00006 if(mat.N!=vec.L){
00007 std::cerr << "[ERROR] operator*(const _dgematrix&, const dcovector&)"
00008 << std::endl
00009 << "These matrix and vector can not make a product." << std::endl
00010 << "Your input was (" << mat.M << "x" << mat.N << ") * ("
00011 << vec.L << ")." << std::endl;
00012 exit(1);
00013 }
00014 #endif//CPPSL_DEBUG
00015
00016 _dcovector newvec(mat.M);
00017 pdgemv_( 'N', mat.M, mat.N, 1.0, mat.Array, 1, 1, mat.Desc,
00018 vec.Array, 1, 1, vec.Desc, 1, 0.0,
00019 newvec.Array, 1, 1, newvec.Desc, 1 );
00020
00021 mat.destroy();
00022 return newvec;
00023 }
|
|
||||||||||||
|
_dgematrix*_dcovector operator Definition at line 3 of file _dgematrix-_dcovector.hpp.
00004 {
00005 #ifdef CPPSL_DEBUG
00006 if(mat.N!=vec.L){
00007 std::cerr << "[ERROR] operator*(const _dgematrix&, const _dcovector&)"
00008 << std::endl
00009 << "These matrix and vector can not make a product." << std::endl
00010 << "Your input was (" << mat.M << "x" << mat.N << ") * ("
00011 << vec.L << ")." << std::endl;
00012 exit(1);
00013 }
00014 #endif//CPPSL_DEBUG
00015
00016 _dcovector newvec(mat.M);
00017 pdgemv_( 'N', mat.M, mat.N, 1.0, mat.Array, 1, 1, mat.Desc,
00018 vec.Array, 1, 1, vec.Desc, 1, 0.0,
00019 newvec.Array, 1, 1, newvec.Desc, 1 );
00020
00021 mat.destroy();
00022 vec.destroy();
00023 return newvec;
00024 }
|
|
||||||||||||
|
dgematrix/double operator Definition at line 33 of file dgematrix-double.hpp.
|
|
||||||||||||
|
_dgematrix/double operator Definition at line 12 of file _dgematrix-double.hpp.
|
|
|
global matrix row size
Definition at line 7 of file _dgematrix.hpp. Referenced by _dgematrix(), absorb(), identity(), operator *(), dgematrix::operator *=(), operator()(), operator+(), dgematrix::operator+=(), operator-(), dgematrix::operator-=(), operator<<(), dgematrix::shallow_copy(), t(), and dgematrix::transpose(). |
|
|
global matrix column size
Definition at line 8 of file _dgematrix.hpp. Referenced by _dgematrix(), absorb(), identity(), operator *(), dgematrix::operator *=(), operator()(), operator+(), dgematrix::operator+=(), operator-(), dgematrix::operator-=(), operator<<(), dgematrix::shallow_copy(), t(), and dgematrix::transpose(). |
|
|
local matrix row size
Definition at line 9 of file _dgematrix.hpp. Referenced by _dgematrix(), absorb(), identity(), operator *(), operator+(), operator-(), operator/(), dgematrix::shallow_copy(), and zero(). |
|
|
local matrix column size
Definition at line 10 of file _dgematrix.hpp. Referenced by _dgematrix(), absorb(), identity(), operator *(), operator+(), operator-(), operator/(), dgematrix::shallow_copy(), and zero(). |
|
|
matrix description
Definition at line 11 of file _dgematrix.hpp. Referenced by _dgematrix(), absorb(), operator *(), dgematrix::operator *=(), operator()(), and dgematrix::shallow_copy(). |
|
|
1D array to store matrix data
Definition at line 12 of file _dgematrix.hpp. Referenced by _dgematrix(), absorb(), destroy(), identity(), operator *(), dgematrix::operator *=(), operator()(), operator+(), dgematrix::operator+=(), operator-(), dgematrix::operator-=(), operator/(), dgematrix::shallow_copy(), and zero(). |
1.3.5