Linear Algebra  master
Accessible implementations of linear algebra algorithms
Classes | Macros | Functions
Matrix.hpp File Reference
#include <algorithm>
#include <cassert>
#include <cmath>
#include <functional>
#include <iosfwd>
#include <numeric>
#include <random>
#include <utility>
#include <vector>
#include "util/MatrixStorage.hpp"
+ Include dependency graph for Matrix.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Matrix
 General matrix class. More...
 
class  Vector
 A column vector (n×1 matrix). More...
 
class  RowVector
 A row vector (1×n matrix). More...
 
class  SquareMatrix
 Square matrix class. More...
 

Macros

#define COL_MAJ_ORDER   1
 

Functions

Matrix operator* (const Matrix &A, const Matrix &B)
 Matrix multiplication. More...
 
Matrix operator* (Matrix &&A, const Matrix &B)
 Matrix multiplication. More...
 
Matrix operator* (const Matrix &A, Matrix &&B)
 Matrix multiplication. More...
 
Matrix operator* (Matrix &&A, Matrix &&B)
 Matrix multiplication. More...
 
SquareMatrix operator* (const SquareMatrix &A, const SquareMatrix &B)
 Square matrix multiplication. More...
 
SquareMatrix operator* (SquareMatrix &&A, const SquareMatrix &B)
 Square matrix multiplication. More...
 
SquareMatrix operator* (const SquareMatrix &A, SquareMatrix &&B)
 Square matrix multiplication. More...
 
SquareMatrix operator* (SquareMatrix &&A, SquareMatrix &&B)
 Square matrix multiplication. More...
 
Vector operator* (const Matrix &A, const Vector &b)
 Matrix-vector multiplication. More...
 
Vector operator* (Matrix &&A, const Vector &b)
 Matrix-vector multiplication. More...
 
Vector operator* (const Matrix &A, Vector &&b)
 Matrix-vector multiplication. More...
 
Vector operator* (Matrix &&A, Vector &&b)
 Matrix-vector multiplication. More...
 
RowVector operator* (const RowVector &a, const Matrix &B)
 Matrix-vector multiplication. More...
 
RowVector operator* (RowVector &&a, const Matrix &B)
 Matrix-vector multiplication. More...
 
RowVector operator* (const RowVector &a, Matrix &&B)
 Matrix-vector multiplication. More...
 
RowVector operator* (RowVector &&a, Matrix &&B)
 Matrix-vector multiplication. More...
 
double operator* (const RowVector &a, const Vector &b)
 Vector-vector multiplication. More...
 
double operator* (RowVector &&a, const Vector &b)
 Vector-vector multiplication. More...
 
double operator* (const RowVector &a, Vector &&b)
 Vector-vector multiplication. More...
 
double operator* (RowVector &&a, Vector &&b)
 Vector-vector multiplication. More...
 
Matrix operator+ (const Matrix &A, const Matrix &B)
 Matrix addition. More...
 
void operator+= (Matrix &A, const Matrix &B)
 
Matrix && operator+ (Matrix &&A, const Matrix &B)
 
Matrix && operator+ (const Matrix &A, Matrix &&B)
 
Matrix && operator+ (Matrix &&A, Matrix &&B)
 
Vector && operator+ (Vector &&a, const Vector &b)
 
Vector && operator+ (const Vector &a, Vector &&b)
 
Vector && operator+ (Vector &&a, Vector &&b)
 
RowVector && operator+ (RowVector &&a, const RowVector &b)
 
RowVector && operator+ (const RowVector &a, RowVector &&b)
 
RowVector && operator+ (RowVector &&a, RowVector &&b)
 
SquareMatrix && operator+ (SquareMatrix &&a, const SquareMatrix &b)
 
SquareMatrix && operator+ (const SquareMatrix &a, SquareMatrix &&b)
 
SquareMatrix && operator+ (SquareMatrix &&a, SquareMatrix &&b)
 
Vector operator+ (const Vector &a, const Vector &b)
 
RowVector operator+ (const RowVector &a, const RowVector &b)
 
SquareMatrix operator+ (const SquareMatrix &a, const SquareMatrix &b)
 
Matrix operator- (const Matrix &A, const Matrix &B)
 Matrix subtraction. More...
 
void operator-= (Matrix &A, const Matrix &B)
 
Matrix && operator- (Matrix &&A, const Matrix &B)
 
Matrix && operator- (const Matrix &A, Matrix &&B)
 
Matrix && operator- (Matrix &&A, Matrix &&B)
 
Vector && operator- (Vector &&a, const Vector &b)
 
Vector && operator- (const Vector &a, Vector &&b)
 
Vector && operator- (Vector &&a, Vector &&b)
 
RowVector && operator- (RowVector &&a, const RowVector &b)
 
RowVector && operator- (const RowVector &a, RowVector &&b)
 
RowVector && operator- (RowVector &&a, RowVector &&b)
 
SquareMatrix && operator- (SquareMatrix &&a, const SquareMatrix &b)
 
SquareMatrix && operator- (const SquareMatrix &a, SquareMatrix &&b)
 
SquareMatrix && operator- (SquareMatrix &&a, SquareMatrix &&b)
 
Vector operator- (const Vector &a, const Vector &b)
 
RowVector operator- (const RowVector &a, const RowVector &b)
 
SquareMatrix operator- (const SquareMatrix &a, const SquareMatrix &b)
 
Matrix operator- (const Matrix &A)
 Matrix negation. More...
 
Matrix && operator- (Matrix &&A)
 
Vector && operator- (Vector &&a)
 
RowVector && operator- (RowVector &&a)
 
SquareMatrix && operator- (SquareMatrix &&a)
 
Vector operator- (const Vector &a)
 
RowVector operator- (const RowVector &a)
 
SquareMatrix operator- (const SquareMatrix &a)
 
Matrix operator* (const Matrix &A, double s)
 Scalar multiplication. More...
 
void operator*= (Matrix &A, double s)
 
Matrix && operator* (Matrix &&A, double s)
 
Vector operator* (const Vector &a, double s)
 
RowVector operator* (const RowVector &a, double s)
 
SquareMatrix operator* (const SquareMatrix &a, double s)
 
Vector && operator* (Vector &&a, double s)
 
RowVector && operator* (RowVector &&a, double s)
 
SquareMatrix && operator* (SquareMatrix &&a, double s)
 
Matrix operator* (double s, const Matrix &A)
 
Matrix && operator* (double s, Matrix &&A)
 
Vector operator* (double s, const Vector &a)
 
RowVector operator* (double s, const RowVector &a)
 
SquareMatrix operator* (double s, const SquareMatrix &a)
 
Vector && operator* (double s, Vector &&a)
 
RowVector && operator* (double s, RowVector &&a)
 
SquareMatrix && operator* (double s, SquareMatrix &&a)
 
Matrix operator/ (const Matrix &A, double s)
 Scalar division. More...
 
void operator/= (Matrix &A, double s)
 
Matrix && operator/ (Matrix &&A, double s)
 
Vector operator/ (const Vector &a, double s)
 
RowVector operator/ (const RowVector &a, double s)
 
SquareMatrix operator/ (const SquareMatrix &a, double s)
 
Vector && operator/ (Vector &&a, double s)
 
RowVector && operator/ (RowVector &&a, double s)
 
SquareMatrix && operator/ (SquareMatrix &&a, double s)
 
Matrix explicit_transpose (const Matrix &in)
 Matrix transpose for general matrices. More...
 
Matrix transpose (const Matrix &in)
 Matrix transpose for rectangular or square matrices and row or column vectors. More...
 
Matrix && transpose (Matrix &&in)
 Matrix transpose for rectangular or square matrices and row or column vectors. More...
 
SquareMatrix transpose (const SquareMatrix &in)
 Square matrix transpose. More...
 
SquareMatrix && transpose (SquareMatrix &&in)
 Square matrix transpose. More...
 
RowVector transpose (const Vector &in)
 Vector transpose. More...
 
RowVector transpose (Vector &&in)
 Vector transpose. More...
 
Vector transpose (const RowVector &in)
 Vector transpose. More...
 
Vector transpose (RowVector &&in)
 Vector transpose. More...
 

Macro Definition Documentation

◆ COL_MAJ_ORDER

#define COL_MAJ_ORDER   1

Definition at line 18 of file Matrix.hpp.