42 #ifndef CORE_DATATYPES_MATRIX_H
43 #define CORE_DATATYPES_MATRIX_H 1
45 #include <Core/Util/CheckSum.h>
46 #include <Core/Util/Debug.h>
47 #include <Core/Util/StringUtil.h>
48 #include <Core/Containers/LockingHandle.h>
49 #include <Core/Geometry/Transform.h>
50 #include <Core/Datatypes/Types.h>
51 #include <Core/Datatypes/PropertyManager.h>
72 virtual void zero() = 0;
80 MatrixBase() : separate_raw_(false), raw_filename_(
"") {}
83 bool get_raw()
const {
return separate_raw_; }
91 virtual void print(std::string&)
const {}
103 template <
typename T>
135 virtual inline bool invert() {
return false; }
143 virtual void zero() = 0;
153 return std::count_if(this->
begin(), this->
end(), std::bind1st(std::not_equal_to<T>(), 0));
157 return std::find_if(this->
begin(), this->
end(), std::bind1st(std::not_equal_to<T>(), 0)) == this->
end();
187 for (T* p =
begin(); p !=
end(); ++p)
virtual std::string dynamic_type_name() const
Definition: Matrix.h:94
Definition: DenseMatrix.h:68
LockingHandle< Matrix< double > > MatrixHandle
Definition: MatrixFwd.h:55
std::string to_string(const MatrixHandle &mat)
Definition: Matrix.h:213
Definition: DenseColMajMatrix.h:73
virtual DenseMatrix * dense()=0
Convert this matrix to the specified type.
Definition: Persistent.h:89
virtual void mult(const ColumnMatrix &x, ColumnMatrix &b, index_type beg=-1, index_type end=-1, int spVec=0) const =0
void set_raw(bool v)
Definition: Matrix.h:82
void Mult(ColumnMatrixGeneric< T > &result, const ColumnMatrixGeneric< T > &a, const ColumnMatrixGeneric< T > &b)
Definition: ColumnMatrixFunctions.h:92
#define SCISHARE
Definition: share.h:39
MatrixBase()
Definition: Matrix.h:80
void set_raw_filename(const std::string &f)
Definition: Matrix.h:84
virtual void scalar_multiply(T s)
Definition: Matrix.h:185
virtual void print(std::string &) const
Definition: Matrix.h:91
virtual Matrix< T > * make_transpose() const =0
std::string raw_filename_
Definition: Matrix.h:100
size_type ncols_
Definition: Matrix.h:113
virtual std::string dynamic_type_name() const
Definition: Matrix.h:183
const std::string get_raw_filename() const
Definition: Matrix.h:89
long long size_type
Definition: Types.h:40
T * end() const
Definition: Matrix.h:141
virtual ~Matrix()
Definition: Matrix.h:116
bool get_raw() const
Definition: Matrix.h:83
Definition: ColumnMatrix.h:55
virtual DenseColMajMatrixGeneric< T > * dense_col_maj()=0
std::string type
Definition: Persistent.h:72
size_type nrows_
Definition: Matrix.h:112
virtual size_type get_data_size() const =0
static PersistentTypeID type_id
Definition: Matrix.h:193
T * begin() const
Definition: Matrix.h:140
virtual void getRowNonzerosNoCopy(index_type r, index_type &size, index_type &stride, index_type *&cols, T *&vals)=0
virtual bool is_zero() const
Definition: Matrix.h:155
bool separate_raw_
Definition: Matrix.h:99
v
Definition: readAllFields.py:42
virtual int compute_checksum()=0
static PersistentTypeID type_id
Definition: Matrix.h:96
size_type number_of_nonzero_elements() const
Definition: Matrix.h:151
virtual bool invert()
return false if not invertible.
Definition: Matrix.h:135
long long index_type
Definition: Types.h:39
T element_type
Definition: Matrix.h:121
size_type ncols() const
Definition: Matrix.h:133
virtual ColumnMatrixGeneric< T > * column()=0
virtual ~MatrixInterface()
Definition: Matrix.h:65
Matrix(size_type nrows=0, size_type ncols=0)
Definition: Matrix.h:107
Definition: Persistent.h:64
virtual SparseRowMatrixGeneric< T > * sparse()=0
virtual T * get_data_pointer() const =0
#define DEBUG_CONSTRUCTOR(type)
Definition: Debug.h:64
Definition: PropertyManager.h:193
virtual Matrix * clone() const =0
Make a duplicate, needed to support detach from LockingHandle.
size_type nrows() const
Definition: Matrix.h:132
virtual void add(index_type r, index_type c, T val)=0
std::string matrix_to_string(const MatrixBase &mat)
Definition: Matrix.h:206
virtual void mult_transpose(const ColumnMatrix &x, ColumnMatrix &b, index_type beg=-1, index_type end=-1, int spVec=0) const =0
Definition: MatrixFwd.h:40
virtual MatrixHandle submatrix(index_type r1, index_type c1, index_type r2, index_type c2)=0
int size
Definition: eabLatVolData.py:2
virtual void put(index_type r, index_type c, T val)=0
#define DEBUG_DESTRUCTOR(type)
Definition: Debug.h:65