00001
00003 inline _zgematrix operator*(const _zcovector& covec, const _zrovector& rovec)
00004 {
00005 #ifdef CPPL_VERBOSE
00006 std::cerr << "# [MARK] operator*(const _zcovector&, const _zrovector&)"
00007 << std::endl;
00008 #endif//CPPL_VERBOSE
00009
00010 #ifdef CPPL_DEBUG
00011 if(covec.L!=rovec.L){
00012 std::cerr << "[ERROR] operator*(const zcovector&, const zrovector&)"
00013 << std::endl
00014 << "These two vectors can not make a product." << std::endl
00015 << "Your input was (" << covec.L << ") * (" << rovec.L << ")."
00016 << std::endl;
00017 exit(1);
00018 }
00019 #endif//CPPL_DEBUG
00020
00021 zgematrix newmat(covec.L, covec.L);
00022 for(long i=0; i<newmat.m; i++){
00023 for(long j=0; j<newmat.n; j++){
00024 newmat(i,j) =covec(i)*rovec(j);
00025 }
00026 }
00027
00028 covec.destroy();
00029 rovec.destroy();
00030 return _(newmat);
00031 }