00001
00003 inline dsymatrix::dsymatrix()
00004 : n(N), array(Array), darray(Darray)
00005 {
00006 #ifdef CPPL_VERBOSE
00007 std::cerr << "# [MARK] dsymatrix::dsymatrix()"
00008 << std::endl;
00009 #endif//CPPL_VERBOSE
00010
00012 N = 0;
00013 Array =NULL;
00014 Darray =NULL;
00015
00016 #ifdef CPPL_DEBUG
00017 std::cerr << "# [NOTE] dsymatrix::dsymatrix() "
00018 << "A new 0x0 matrix at " << Array
00019 << " has been made." << std::endl;
00020 #endif//CPPL_DEBUG
00021 }
00022
00023
00025 inline dsymatrix::dsymatrix(const dsymatrix& mat)
00026 : n(N), array(Array), darray(Darray)
00027 {
00028 #ifdef CPPL_VERBOSE
00029 std::cerr << "# [MARK] dsymatrix::dsymatrix(const dsymatrix&)"
00030 << std::endl;
00031 #endif//CPPL_VERBOSE
00032
00034 N =mat.N;
00035 Array =new double[N*N];
00036 Darray =new double*[N];
00037 for(int i=0; i<N; i++){ Darray[i] =&Array[i*N]; }
00038
00040 dcopy_(N*N, mat.Array, 1, Array, 1);
00041
00042 #ifdef CPPL_DEBUG
00043 std::cerr << "# [NOTE] dsymatrix::dsymatrix(const dsymatrix&) "
00044 << "A new matrix at " << Array
00045 << " has been made." << std::endl;
00046 #endif//CPPL_DEBUG
00047 }
00048
00049
00051 inline dsymatrix::dsymatrix(const _dsymatrix& mat)
00052 : n(N), array(Array), darray(Darray)
00053 {
00054 #ifdef CPPL_VERBOSE
00055 std::cerr << "# [MARK] dsymatrix::dsymatrix(const _dsymatrix&)"
00056 << std::endl;
00057 #endif//CPPL_VERBOSE
00058
00059 N =mat.N;
00060 Array =mat.Array;
00061 Darray =mat.Darray;
00062
00063 #ifdef CPPL_DEBUG
00064 std::cerr << "# [NOTE] dsymatrix::dsymatrix(const _dsymatrix&) "
00065 << "A new matrix pointing at " << Array
00066 << " has been made."
00067 << std::endl;
00068 #endif//CPPL_DEBUG
00069 }
00070
00071
00073 inline dsymatrix::dsymatrix(const long& _n)
00074 : n(N), array(Array), darray(Darray)
00075 {
00076 #ifdef CPPL_VERBOSE
00077 std::cerr << "# [MARK] dsymatrix::dsymatrix(const long&)"
00078 << std::endl;
00079 #endif//CPPL_VERBOSE
00080
00081 #ifdef CPPL_DEBUG
00082 if( _n<0 ){
00083 std::cerr << "[ERROR] dsymatrix::dsymatrix(const long)"
00084 << std::endl
00085 << "Matrix sizes must be positive integers. " << std::endl
00086 << "Your input was (" << _n << ")." << std::endl;
00087 exit(1);
00088 }
00089 #endif//CPPL_DEBUG
00090
00092 N =_n;
00093 Array =new double[N*N];
00094 Darray =new double*[N];
00095 for(int i=0; i<N; i++){ Darray[i] =&Array[i*N]; }
00096
00097 #ifdef CPPL_DEBUG
00098 std::cerr << "# [NOTE] dsymatrix(long) "
00099 << "A new matrix at " << Array
00100 << " has been made." << std::endl;
00101 #endif//CPPL_DEBUG
00102 }
00103
00104
00106 inline dsymatrix::dsymatrix(const char* filename)
00107 : n(N), array(Array), darray(Darray)
00108 {
00109 #ifdef CPPL_VERBOSE
00110 std::cerr << "# [MARK] dsymatrix::dsymatrix(const char*)"
00111 << std::endl;
00112 #endif//CPPL_VERBOSE
00113
00114 Array =NULL;
00115 Darray =NULL;
00116
00118 read(filename);
00119
00120 #ifdef CPPL_DEBUG
00121 std::cerr << "# [NOTE] dsymatrix::dsymatrix(const char*) "
00122 << "A new matrix at " << Array << " has been made." << std::endl;
00123 #endif//CPPL_DEBUG
00124 }
00125
00129
00130
00132 inline dsymatrix::~dsymatrix()
00133 {
00134 #ifdef CPPL_VERBOSE
00135 std::cerr << "# [MARK] dsymatrix::~dsymatrix()"
00136 << std::endl;
00137 #endif//CPPL_VERBOSE
00138
00139 #ifdef CPPL_DEBUG
00140 std::cerr << "# [NOTE] dsymatrix::~dsymatrix() "
00141 << "A matrix at " << Array << " is going to be deleted." << std::endl;
00142 #endif//CPPL_DEBUG
00144 delete [] Array;
00145 delete [] Darray;
00146 }