CPP Linear Algebra ToolBox  0.1.0
squareMatrix.h
Go to the documentation of this file.
1 
10 #ifndef SQUARE_MATRIX_H
11 #define SQUARE_MATRIX_H
12 
13 #include "matrix.h"
14 
15 class SquareMatrix : public Matrix {
16  public:
17  /* CONSTRUCTORS */
18  SquareMatrix();
19  SquareMatrix(uint16_t );
20  SquareMatrix(const SquareMatrix & );
21 
22  /* DESTRUCTORS */
23  ~SquareMatrix();
24 
25  /*ACCESSORS */
26 
27  /* METHODS */
28 
29  /* OVERLOAD OPERATORS MATRIX*/
31 
32  SquareMatrix operator-() const;
33 
34  friend SquareMatrix operator*(const SquareMatrix & , const SquareMatrix & );
35  friend SquareMatrix operator*(const double , const SquareMatrix & );
36  friend SquareMatrix operator*(const SquareMatrix & , const double );
37 
38  friend SquareMatrix operator+(const SquareMatrix & , const SquareMatrix & );
39  friend SquareMatrix operator+(const double , const SquareMatrix & );
40  friend SquareMatrix operator+(const SquareMatrix & , const double );
41 
42  friend SquareMatrix operator-(const SquareMatrix & , const SquareMatrix & );
43  friend SquareMatrix operator-(const SquareMatrix & , const double );
44  friend SquareMatrix operator-(const double , const SquareMatrix & );
45 
46  friend SquareMatrix operator/(const SquareMatrix & , const double );
47 
48  /* OVERLOAD METHODS MATRIX */
49  SquareMatrix transpose() const;
50 
51  /* STATIC METHODS */
52  static SquareMatrix eye(uint16_t );
53  static SquareMatrix diag(const Vector & );
54  static Vector diag(const SquareMatrix & );
55  static double tr(const SquareMatrix & );
56 
57  /* OVERLOAD STATIC METHODS MATRIX */
58  static SquareMatrix zeros(uint16_t );
59  static SquareMatrix ones(uint16_t );
60  static SquareMatrix rand(uint16_t );
61  static SquareMatrix hilbert(uint16_t );
62  static SquareMatrix vandermonde(const Vector & );
63  static SquareMatrix outer(const Vector & , const Vector & );
65 
66  private:
67 
68 };
69 
70 #endif
A class describing a Matrix object. Matrices are array of size (n,m) whre n and m are integer greater...
Definition: matrix.h:29
Definition: squareMatrix.h:15
friend SquareMatrix operator*(const SquareMatrix &, const SquareMatrix &)
Definition: squareMatrix.cpp:30
friend SquareMatrix operator+(const SquareMatrix &, const SquareMatrix &)
Definition: squareMatrix.cpp:57
static SquareMatrix ones(uint16_t)
Definition: squareMatrix.cpp:132
~SquareMatrix()
Definition: squareMatrix.cpp:11
SquareMatrix transpose() const
Definition: squareMatrix.cpp:114
static SquareMatrix matmul(const SquareMatrix &, MATRIX_TRANSPOSE, const SquareMatrix &, MATRIX_TRANSPOSE)
Definition: squareMatrix.cpp:180
friend SquareMatrix operator/(const SquareMatrix &, const double)
Definition: squareMatrix.cpp:103
static SquareMatrix diag(const Vector &)
Definition: squareMatrix.cpp:240
static SquareMatrix zeros(uint16_t)
Definition: squareMatrix.cpp:126
SquareMatrix()
Definition: squareMatrix.cpp:5
static SquareMatrix rand(uint16_t)
Definition: squareMatrix.cpp:138
static SquareMatrix outer(const Vector &, const Vector &)
Definition: squareMatrix.cpp:169
static SquareMatrix vandermonde(const Vector &)
Definition: squareMatrix.cpp:159
static SquareMatrix eye(uint16_t)
Definition: squareMatrix.cpp:232
SquareMatrix operator-() const
Definition: squareMatrix.cpp:22
static double tr(const SquareMatrix &)
Definition: squareMatrix.cpp:256
SquareMatrix & operator=(const SquareMatrix &)
Definition: squareMatrix.cpp:17
static SquareMatrix hilbert(uint16_t)
Definition: squareMatrix.cpp:148
A lightweight class describing a Vector object. Vectors are array with size n (>0) of doubles.
Definition: vector.h:25
Header file for Matrix class.
MATRIX_TRANSPOSE
Enumeration of transposition operation for Matrix object, useful for fast multiplication.
Definition: matrix.h:19