00001
00003 inline _zrovector t(const _zcovector& covec)
00004 {
00005 #ifdef CPPL_VERBOSE
00006 std::cerr << "# [MARK] t(const _zcovector&)"
00007 << std::endl;
00008 #endif//CPPL_VERBOSE
00009
00010 _zrovector rovec;
00011 rovec.L =covec.L;
00012 delete [] rovec.Array;
00013 rovec.Array =covec.Array;
00014
00015 return rovec;
00016 }
00017
00018
00020 inline _zcovector conj(const _zcovector& vec)
00021 {
00022 #ifdef CPPL_VERBOSE
00023 std::cerr << "# [MARK] conj(const _zcovector&)"
00024 << std::endl;
00025 #endif//CPPL_VERBOSE
00026
00027 for(long i=0; i<vec.L; i++){ vec(i) =std::conj(vec(i)); }
00028 return vec;
00029 }
00030
00031
00033 inline _zrovector conjt(const _zcovector& covec)
00034 {
00035 #ifdef CPPL_VERBOSE
00036 std::cerr << "# [MARK] conjt(const _zcovector&)"
00037 << std::endl;
00038 #endif//CPPL_VERBOSE
00039
00040 zrovector rovec(covec.L);
00041 for(long i=0; i<covec.L; i++){ rovec(i) =std::conj(covec(i)); }
00042
00043 covec.destroy();
00044 return _(rovec);
00045 }
00046
00050
00051
00053 inline double nrm2(const _zcovector& vec)
00054 {
00055 #ifdef CPPL_VERBOSE
00056 std::cerr << "# [MARK] nrm2(const _zcovector&)"
00057 << std::endl;
00058 #endif//CPPL_VERBOSE
00059
00060 double val( dznrm2_(vec.L, vec.Array, 1) );
00061 vec.destroy();
00062 return val;
00063 }
00064
00065
00068 inline long idamax(const _zcovector& vec)
00069 {
00070 #ifdef CPPL_VERBOSE
00071 std::cerr << "# [MARK] idamax(const _zcovector&)"
00072 << std::endl;
00073 #endif//CPPL_VERBOSE
00074
00075 long i( izamax_(vec.L, vec.Array, 1) -1 );
00076 vec.destroy();
00077 return i;
00078 }
00079
00080
00082 inline std::complex<double> damax(const _zcovector& vec)
00083 {
00084 #ifdef CPPL_VERBOSE
00085 std::cerr << "# [MARK] damax(const _zcovector&)"
00086 << std::endl;
00087 #endif//CPPL_VERBOSE
00088
00089 std::complex<double> val( vec.Array[izamax_(vec.L, vec.Array, 1)-1] );
00090 vec.destroy();
00091 return val;
00092 }