00001
00003 inline std::complex<double> operator*(const _zrovector& rovec, const zcovector& covec)
00004 {
00005 #ifdef CPPL_VERBOSE
00006 std::cerr << "# [MARK] operator*(const _zrovector&, const zcovector&)"
00007 << std::endl;
00008 #endif//CPPL_VERBOSE
00009
00010 #ifdef CPPL_DEBUG
00011 if(rovec.L!=covec.L){
00012 std::cerr << "[ERROR] operator*(const zrovector&, const zcovector&)"
00013 << std::endl
00014 << "These two vectors can not make a product." << std::endl
00015 << "Your input was (" << rovec.L << ") * (" << covec.L << ")."
00016 << std::endl;
00017 exit(1);
00018 }
00019 #endif//CPPL_DEBUG
00020
00021 std::complex<double> val( zdotu_( rovec.L, rovec.Array, 1, covec.Array, 1 ) );
00022
00023 rovec.destroy();
00024 return val;
00025 }