00001
00003 inline zgematrix& zgematrix::operator*=(const std::complex<double>& d)
00004 {
00005 #ifdef CPPL_VERBOSE
00006 std::cerr << "# [MARK] zgematrix::operator*=(const std::complex<double>&)"
00007 << std::endl;
00008 #endif//CPPL_VERBOSE
00009
00010 zscal_(M*N, d, Array, 1);
00011 return *this;
00012 }
00013
00014
00016 inline zgematrix& zgematrix::operator/=(const std::complex<double>& d)
00017 {
00018 #ifdef CPPL_VERBOSE
00019 std::cerr << "# [MARK] zgematrix::operator/=(const std::complex<double>&)"
00020 << std::endl;
00021 #endif//CPPL_VERBOSE
00022
00023 zscal_(M*N, 1./d, Array, 1);
00024 return *this;
00025 }
00026
00030
00031
00033 inline _zgematrix operator*(const zgematrix& mat, const std::complex<double>& d)
00034 {
00035 #ifdef CPPL_VERBOSE
00036 std::cerr << "# [MARK] operator*(const zgematrix&, const std::complex<double>&)"
00037 << std::endl;
00038 #endif//CPPL_VERBOSE
00039
00040 zgematrix newmat(mat.M, mat.N);
00041 for(long i=0; i<mat.M*mat.N; i++){ newmat.array[i] =mat.Array[i]*d; }
00042
00043 return _(newmat);
00044 }
00045
00046
00048 inline _zgematrix operator/(const zgematrix& mat, const std::complex<double>& d)
00049 {
00050 #ifdef CPPL_VERBOSE
00051 std::cerr << "# [MARK] operator/(const zgematrix&, const std::complex<double>&)"
00052 << std::endl;
00053 #endif//CPPL_VERBOSE
00054
00055 std::complex<double> inv_d(1./d);
00056
00057 zgematrix newmat(mat.M, mat.N);
00058 for(long i=0; i<mat.M*mat.N; i++){ newmat.array[i] =mat.Array[i]*inv_d; }
00059
00060 return _(newmat);
00061 }