95 #include "utility/matrix/nDarray/nDarray_rep.h" 98 #include <boost/python.hpp> 99 #include "tmpl_operators.h" 111 const double *data(
void)
const;
112 const std::vector<double> &vector_data(
void)
const;
113 void set_dim(
const std::vector<int> &);
117 size_t total_number(
void)
const;
118 void total_number(
size_t );
119 void clear_dim(
void);
120 void clear_data(
void);
121 void clear_dim_data(
void);
122 const int &get_dim_pointer(
void)
const;
126 nDarray(
int rank_of_nDarray=1,
const double &initval=0.0);
127 nDarray(
const std::vector<int> &pdim,
const double *values);
128 nDarray(
const std::vector<int> &pdim,
const std::vector<double> &);
129 nDarray(
const std::vector<int> &pdim,
const boost::python::list &);
130 nDarray(
const boost::python::list &,
const boost::python::list &);
131 nDarray(
const std::vector<int> &pdim,
double initvalue);
134 nDarray(
int rows,
int cols,
double *values);
135 nDarray(
int rows,
int cols,
const std::vector<double> &values);
136 nDarray(
int rows,
int cols,
const boost::python::list &);
137 nDarray(
int rows,
int cols,
double initvalue);
140 explicit nDarray(
const std::string &){}
142 nDarray(
const std::string &flag,
const std::vector<int> &pdim);
143 inline virtual ~
nDarray(
void){};
150 void Initialize_all(
const nDarray &from);
156 const std::vector<int> &dim(
void)
const;
157 boost::python::list
dimPy(
void)
const;
159 inline const double &operator()(
int first)
const 160 {
return pc_nDarray_rep(first); }
162 inline double &operator()(
int first)
165 return this_no_const->operator()(first);
168 inline const double &operator()(
int first,
int second)
const 169 {
return pc_nDarray_rep(first, second); }
171 inline double &operator()(
int first,
int second)
174 return this_no_const->operator()(first, second);
177 inline const double &operator()(
int first,
int second,
int third)
const 178 {
return pc_nDarray_rep(first, second, third); }
180 inline double &operator()(
int first,
int second,
int third)
183 return this_no_const->operator()(first, second, third);
185 inline const double &operator()(
int first,
int second,
int third,
int fourth)
const 186 {
return pc_nDarray_rep(first, second, third, fourth); }
188 inline double &operator()(
int first,
int second,
int third,
int fourth)
190 return pc_nDarray_rep(first, second, third, fourth);
195 inline const double &_val(
const std::vector<int> &subscripts)
const 196 {
return _cval(subscripts); }
197 double &_val(
const std::vector<int> &);
198 template<
class...nums>
199 const double &val(nums...args)
const 201 const std::vector<int> vec = {args...};
204 template<
class...nums>
205 double &val(nums...args)
207 const std::vector<int> vec = {args...};
211 const double &val4(
int first,
int second,
int third,
int fourth)
const;
212 double &val4(
int first,
int second,
int third,
int fourth);
215 const double &_cval(
const std::vector<int> &)
const;
216 template<
class...nums>
217 const double &cval(nums...args)
const 219 std::vector<int> vec = {args...};
243 double sum(
void)
const;
244 double trace(
void)
const;
254 double Frobenius_norm(
void );
256 double General_norm(
double p );
259 int rank(
void)
const;
260 int dim(
int which)
const;
262 void output(std::ostream &os)
const;
264 void print(
const std::string &name =
"t",
const std::string &msg =
"Hi there#", std::ostream &os= std::cout)
const;
265 void printshort(std::ostream &os,
const std::string &msg =
"Hi there#")
const;
267 friend std::string to_string(
const nDarray &);
268 inline std::string toString(
void)
const 269 {
return to_string(*
this); }
273 static void tqli(std::vector<double> &d, std::vector<double> &,
int n, std::vector<std::vector<double> > &z);
274 static void tred2(std::vector<std::vector<double> > &a,
int n, std::vector<double> &d, std::vector<double> &e);
275 static void eigsrt(std::vector<double> &d, std::vector<std::vector<double> > &v,
int n);
282 std::ostream& operator<<(std::ostream &,
const nDarray &);
283 std::string to_string(
const nDarray &);
nDarray operator-()
unary minus
Definition: nDarray.cpp:665
void printshort(std::ostream &os, const std::string &msg="Hi there#") const
nDarray print function
Definition: nDarray.cpp:922
nDarray & operator+=(const nDarray &)
nDarray addition
Definition: nDarray.cpp:568
void Reset_to(const double &value)
Reset data to "value".
Definition: nDarray.cpp:381
bool operator==(const nDarray &rval) const
nDarray comparison returns true if they are equal.
Definition: nDarray.cpp:753
nDarray & operator*=(const double &rval)
scalar multiplication
Definition: nDarray.cpp:606
void outputshort(std::ostream &os) const
nDarray print function
Definition: nDarray.cpp:856
void print(const std::string &name="t", const std::string &msg="Hi there#", std::ostream &os=std::cout) const
nDarray print function
Definition: nDarray.cpp:832
void mathprint(std::ostream &os) const
nDarray print function for mathematica
Definition: nDarray.cpp:930
nDarray(int rank_of_nDarray=1, const double &initval=0.0)
Constructor.
Definition: nDarray.cpp:118
n-dimensional array.
Definition: nDarray.h:106
nDarray operator*(const double &rval) const
scalar multiplication
Definition: nDarray.cpp:614
Storage of n-dimensional array data.
Definition: nDarray_rep.h:112
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
nDarray operator+(const double &rval)
scalar addition
Definition: nDarray.cpp:597
boost::python::list dimPy(void) const
Return the array dimensions in a Python list.
Definition: nDarray.cpp:405
void output(std::ostream &os) const
Write this object to the argument stream.
Definition: nDarray.cpp:759