DATAKIT API  V2025.1
dtk_matrix.hpp
Go to the documentation of this file.
1 #ifndef __DTK_MATRIX_HPP__
2 #define __DTK_MATRIX_HPP__
4 #include <def/define.h>
5 
6 class Dtk_matrix: public Dtk_Object
7 
8 {
9 protected:
10  void _init();
11  void _copy( const Dtk_matrix& s );
12  void _reset();
18 
19 private:
20  void inverse3_3();
21  void transposeCarre();
22 public:
23  Dtk_matrix( Dtk_Size_t, Dtk_Size_t, bool allZeroes = false );
26  Dtk_matrix( const Dtk_matrix& m ) :Dtk_Object( m ) { _copy( m ); };
28  void set_nulle();
29  Dtk_bool inverse( const Dtk_bool &inIsDiag = DTK_FALSE );
30  void transpose();
31  int is_identity();
32  double det();
37 
38  //downcasting
41 
42  // accesseurs
43  double& set_val( const Dtk_Size_t &row, const Dtk_Size_t &col );
44  int get_dim( Dtk_Size_t *x, Dtk_Size_t * y ) const;
45  Dtk_Size_t X() const;
46  Dtk_Size_t Y() const;
48  const Dtk_Double64* operator[]( Dtk_Size_t col ) const;
49 
50  // mutliplication
53  Dtk_matrix multiplie( double );
56  void opposee();
58 
59 private:
60  friend class Dtk_SmartPtr<Dtk_matrix>;
61 };
62 
63 
64 #endif //#ifndef __DTK_MATRIX_HPP__
Dtk_matrix::_reset
void _reset()
Dtk_matrix::operator[]
Dtk_Double64 * operator[](Dtk_Size_t col)
Dtk_matrix::Dtk_matrix
Dtk_matrix(Dtk_Size_t, Dtk_Size_t, bool allZeroes=false)
Dtk_matrix::inverse
Dtk_bool inverse(const Dtk_bool &inIsDiag=DTK_FALSE)
Dtk_matrix::det
double det()
Dtk_matrix::~Dtk_matrix
~Dtk_matrix()
Dtk_matrix::multiplie
Dtk_matrix multiplie(double)
Dtk_matrix::X
Dtk_Size_t X() const
Dtk_matrix::set_nulle
void set_nulle()
Dtk_matrix::operator*
friend Dtk_matrix operator*(Dtk_matrix &, Dtk_matrix &)
Dtk_matrix::_num_columns
Dtk_Size_t _num_columns
Definition: dtk_matrix.hpp:17
Dtk_Size_t
size_t Dtk_Size_t
Definition: define.h:712
Dtk_matrix::set_sous_matrix
int set_sous_matrix(Dtk_matrix *sub, Dtk_Size_t x, Dtk_Size_t y)
Dtk_matrix::multiplie
Dtk_matrix multiplie(Dtk_matrix &)
Dtk_matrix::Dtk_matrix
Dtk_matrix()
Dtk_matrix::opposee
void opposee()
DTK_FALSE
#define DTK_FALSE
Definition: define.h:728
Dtk_bool
char Dtk_bool
Definition: define.h:725
Dtk_matrix::Y
Dtk_Size_t Y() const
Dtk_Double64
double Dtk_Double64
Definition: define.h:699
Dtk_matrix::multiplie
Dtk_matrix * multiplie(Dtk_matrix *)
Dtk_matrix::DtkDynamicCast
static Dtk_matrix * DtkDynamicCast(Dtk_Object *s)
Dtk_matrix::_typeID
@ _typeID
Definition: dtk_matrix.hpp:14
Dtk_matrix::operator[]
const Dtk_Double64 * operator[](Dtk_Size_t col) const
Dtk_matrix::get_dim
int get_dim(Dtk_Size_t *x, Dtk_Size_t *y) const
Dtk_matrix::_mat
Dtk_Double64 ** _mat
Definition: dtk_matrix.hpp:15
Dtk_matrix::_num_lines
Dtk_Size_t _num_lines
Definition: dtk_matrix.hpp:16
Dtk_Int32
int32_t Dtk_Int32
Definition: define.h:687
Dtk_matrix::set_val
double & set_val(const Dtk_Size_t &row, const Dtk_Size_t &col)
Dtk_matrix
Definition: dtk_matrix.hpp:8
Dtk_SmartPtr
Definition: util_ptr_dtk.hpp:37
Dtk_matrix::operator==
int operator==(Dtk_matrix &)
Dtk_matrix::addition
Dtk_matrix addition(Dtk_matrix &)
Dtk_matrix::Dtk_matrix
Dtk_matrix(Dtk_Size_t a)
define.h
Dtk_matrix::soustraction
Dtk_matrix soustraction(Dtk_matrix &)
Dtk_matrix::post_matrix
Dtk_matrix * post_matrix(Dtk_Size_t ligne_x)
Dtk_Object
Definition: dtk_object.hpp:8
Dtk_matrix::DtkDynamicType
Dtk_Int32 DtkDynamicType(const Dtk_Int32 &inId)
Dtk_matrix::_init
void _init()
Dtk_matrix::operator=
Dtk_matrix & operator=(const Dtk_matrix &)
Dtk_matrix::_copy
void _copy(const Dtk_matrix &s)
Dtk_matrix::get_sous_mat
Dtk_matrix * get_sous_mat(Dtk_Size_t xmin, Dtk_Size_t xmax, Dtk_Size_t ymin, Dtk_Size_t ymax)
Dtk_matrix::Dtk_matrix
Dtk_matrix(const Dtk_matrix &m)
Definition: dtk_matrix.hpp:26
Dtk_matrix::is_identity
int is_identity()
dtk_object.hpp
Dtk_matrix::transpose
void transpose()
DTK_TYPE_MATRIX
@ DTK_TYPE_MATRIX
Definition: define.h:468