CPPLapack
 All Classes Files Functions Variables Friends Pages
dsymatrix-constructor.hpp
Go to the documentation of this file.
1 //=============================================================================
2 /*! dsymatrix constructor without arguments */
4  : m(n)
5 {CPPL_VERBOSE_REPORT;
6  //////// initialize ////////
7  n = 0;
8  array =NULL;
9  darray =NULL;
10 }
11 
12 //=============================================================================
13 /*! dsymatrix copy constructor */
14 inline dsymatrix::dsymatrix(const dsymatrix& mat)
15  : m(n)
16 {CPPL_VERBOSE_REPORT;
17  //////// initialize ////////
18  n =mat.n;
19  array =new double[n*n];
20  darray =new double*[n];
21  for(int i=0; i<n; i++){
22  darray[i] =&array[i*n];
23  }
24 
25  //////// copy ////////
26  CPPL_INT size =n*n;
27  CPPL_INT inc =1;
28  dcopy_(&size, mat.array, &inc, array, &inc);
29 }
30 
31 //=============================================================================
32 /*! dsymatrix constructor to cast _dsymatrix */
33 inline dsymatrix::dsymatrix(const _dsymatrix& mat)
34  : m(n)
35 {CPPL_VERBOSE_REPORT;
36  n =mat.n;
37  array =mat.array;
38  darray =mat.darray;
39 
40  mat.nullify();
41 }
42 
43 //=============================================================================
44 /*! dsymatrix copy constructor to cast dssmatrix */
45 /*
46 inline dsymatrix::dsymatrix(const dssmatrix& mat)
47  : m(n)
48 {CPPL_VERBOSE_REPORT;
49  //////// initialize ////////
50  n =mat.n;
51  array =new double[n*n];
52  darray =new double*[n];
53  for(int i=0; i<n; i++){ darray[i] =&array[i*n]; }
54 
55  //////// copy ////////
56  zero();
57  for(int c=0; c<mat.vol; c++){
58  (*this)(mat.indx[c],mat.jndx[c]) =mat.array[c];
59  }
60 }
61 */
62 
63 //=============================================================================
64 /*! dsymatrix constructor to cast _dssmatrix */
65 /*
66 inline dsymatrix::dsymatrix(const _dssmatrix& mat)
67  : m(n)
68 {CPPL_VERBOSE_REPORT;
69  n =mat.n;
70  array =new double[n*n];
71  darray =new double*[n];
72  for(int i=0; i<n; i++){ darray[i] =&array[i*n]; }
73 
74  //////// copy ////////
75  zero();
76  for(int c=0; c<mat.vol; c++){
77  (*this)(mat.indx[c],mat.jndx[c]) =mat.array[c];
78  }
79 
80  mat.nullify();
81 }
82 */
83 
84 
85 //=============================================================================
86 /*! dsymatrix constructor with size specification */
87 inline dsymatrix::dsymatrix(const CPPL_INT& _n)
88  : m(n)
89 {CPPL_VERBOSE_REPORT;
90 #ifdef CPPL_DEBUG
91  if( _n<0 ){
92  ERROR_REPORT;
93  std::cerr << "Matrix sizes must be positive integers. " << std::endl
94  << "Your input was (" << _n << ")." << std::endl;
95  exit(1);
96  }
97 #endif//CPPL_DEBUG
98 
99  //////// initialize ////////
100  n =_n;
101  array =new double[n*n];
102  darray =new double*[n];
103  for(int i=0; i<n; i++){
104  darray[i] =&array[i*n];
105  }
106 }
107 
108 //=============================================================================
109 /*! dsymatrix constructor with filename */
110 inline dsymatrix::dsymatrix(const char* filename)
111  : m(n)
112 {CPPL_VERBOSE_REPORT;
113  array =NULL;
114  darray =NULL;
115 
116  //// copy ////
117  read(filename);
118 }
119 
120 ///////////////////////////////////////////////////////////////////////////////
121 ///////////////////////////////////////////////////////////////////////////////
122 ///////////////////////////////////////////////////////////////////////////////
123 
124 //=============================================================================
125 /*! dsymatrix destructor */
127 {CPPL_VERBOSE_REPORT;
128  delete [] array;
129  delete [] darray;
130 }
void read(const char *)
Real Double-precision Symmetric Matrix Class [l-type (UPLO=l) Strage].
Definition: dsymatrix.hpp:3
double * array
1D array to store matrix data
Definition: _dsymatrix.hpp:12
friend _dsymatrix i(const dsymatrix &)
double ** darray
array of pointers of column head addresses
Definition: _dsymatrix.hpp:13
CPPL_INT n
matrix column size
Definition: dsymatrix.hpp:10
(DO NOT USE) Smart-temporary Real Double-precision Symmetric Matrix Class
Definition: _dsymatrix.hpp:3
double * array
1D array to store matrix data
Definition: dsymatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dsymatrix.hpp:11
double ** darray
array of pointers of column head addresses
Definition: dsymatrix.hpp:12
void nullify() const