VERB_code_2.3
dsymatrix-constructor.hpp
1 //============================================================================
4  : n(N), array(Array), darray(Darray)
5 {
6 #ifdef CPPL_VERBOSE
7  std::cerr << "# [MARK] dsymatrix::dsymatrix()"
8  << std::endl;
9 #endif//CPPL_VERBOSE
10 
12  N = 0;
13  Array =NULL;
14  Darray =NULL;
15 
16 #ifdef CPPL_DEBUG
17  std::cerr << "# [NOTE] dsymatrix::dsymatrix() "
18  << "A new 0x0 matrix at " << Array
19  << " has been made." << std::endl;
20 #endif//CPPL_DEBUG
21 }
22 
23 //============================================================================
25 inline dsymatrix::dsymatrix(const dsymatrix& mat)
26  : n(N), array(Array), darray(Darray)
27 {
28 #ifdef CPPL_VERBOSE
29  std::cerr << "# [MARK] dsymatrix::dsymatrix(const dsymatrix&)"
30  << std::endl;
31 #endif//CPPL_VERBOSE
32 
34  N =mat.N;
35  Array =new double[N*N];
36  Darray =new double*[N];
37  for(int i=0; i<N; i++){ Darray[i] =&Array[i*N]; }
38 
40  dcopy_(N*N, mat.Array, 1, Array, 1);
41 
42 #ifdef CPPL_DEBUG
43  std::cerr << "# [NOTE] dsymatrix::dsymatrix(const dsymatrix&) "
44  << "A new matrix at " << Array
45  << " has been made." << std::endl;
46 #endif//CPPL_DEBUG
47 }
48 
49 //============================================================================
51 inline dsymatrix::dsymatrix(const _dsymatrix& mat)
52  : n(N), array(Array), darray(Darray)
53 {
54 #ifdef CPPL_VERBOSE
55  std::cerr << "# [MARK] dsymatrix::dsymatrix(const _dsymatrix&)"
56  << std::endl;
57 #endif//CPPL_VERBOSE
58 
59  N =mat.N;
60  Array =mat.Array;
61  Darray =mat.Darray;
62 
63 #ifdef CPPL_DEBUG
64  std::cerr << "# [NOTE] dsymatrix::dsymatrix(const _dsymatrix&) "
65  << "A new matrix pointing at " << Array
66  << " has been made."
67  << std::endl;
68 #endif//CPPL_DEBUG
69 }
70 
71 //============================================================================
73 inline dsymatrix::dsymatrix(const long& _n)
74  : n(N), array(Array), darray(Darray)
75 {
76 #ifdef CPPL_VERBOSE
77  std::cerr << "# [MARK] dsymatrix::dsymatrix(const long&)"
78  << std::endl;
79 #endif//CPPL_VERBOSE
80 
81 #ifdef CPPL_DEBUG
82  if( _n<0 ){
83  std::cerr << "[ERROR] dsymatrix::dsymatrix(const long)"
84  << std::endl
85  << "Matrix sizes must be positive integers. " << std::endl
86  << "Your input was (" << _n << ")." << std::endl;
87  exit(1);
88  }
89 #endif//CPPL_DEBUG
90 
92  N =_n;
93  Array =new double[N*N];
94  Darray =new double*[N];
95  for(int i=0; i<N; i++){ Darray[i] =&Array[i*N]; }
96 
97 #ifdef CPPL_DEBUG
98  std::cerr << "# [NOTE] dsymatrix(long) "
99  << "A new matrix at " << Array
100  << " has been made." << std::endl;
101 #endif//CPPL_DEBUG
102 }
103 
104 //============================================================================
106 inline dsymatrix::dsymatrix(const char* filename)
107  : n(N), array(Array), darray(Darray)
108 {
109 #ifdef CPPL_VERBOSE
110  std::cerr << "# [MARK] dsymatrix::dsymatrix(const char*)"
111  << std::endl;
112 #endif//CPPL_VERBOSE
113 
114  Array =NULL;
115  Darray =NULL;
116 
118  read(filename);
119 
120 #ifdef CPPL_DEBUG
121  std::cerr << "# [NOTE] dsymatrix::dsymatrix(const char*) "
122  << "A new matrix at " << Array << " has been made." << std::endl;
123 #endif//CPPL_DEBUG
124 }
125 
129 
130 //============================================================================
133 {
134 #ifdef CPPL_VERBOSE
135  std::cerr << "# [MARK] dsymatrix::~dsymatrix()"
136  << std::endl;
137 #endif//CPPL_VERBOSE
138 
139 #ifdef CPPL_DEBUG
140  std::cerr << "# [NOTE] dsymatrix::~dsymatrix() "
141  << "A matrix at " << Array << " is going to be deleted." << std::endl;
142 #endif//CPPL_DEBUG
143  delete [] Array;
145  delete [] Darray;
146 }
double * Array
1D Array to store matrix data
Definition: _dsymatrix.hpp:8
friend _dgematrix i(const dsymatrix &)
Definition: dsymatrix-calc.hpp:22
Real Double-precision Symmetric Matrix Class [L-type (UPLO=L) Strage].
Definition: dsymatrix.hpp:3
dsymatrix()
Definition: dsymatrix-constructor.hpp:3
long N
matrix column or row size
Definition: _dsymatrix.hpp:7
(DO NOT USE) Smart-temporary Real Double-precision Symmetric Matrix Class
Definition: _dsymatrix.hpp:3
double ** Darray
array of pointers of column head addresses
Definition: _dsymatrix.hpp:9
double * Array
1D Array to store vector data
Definition: _drovector.hpp:8
~dsymatrix()
Definition: dsymatrix-constructor.hpp:132