matrix module  1.00.00
www.protokollkonverter.de
matrix.h File Reference

prototypes of functions to calculate matrices and vectors More...

#include <stddef.h>
#include <stdint.h>
#include <stdbool.h>
Include dependency graph for matrix.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define VECTOR_STANDARD_DIMENSION   3
 standard dimension for vectors, normal coordination system More...
 

Typedefs

typedef struct _MATRIXMATRIX
 instance pointer of a matrix More...
 
typedef struct _MATRIXVECTOR
 instance pointer of a vector More...
 
typedef double MATRIX_VALUE
 type of supported value More...
 

Functions

void matrixPrint (MATRIX A)
 print matrix More...
 
MATRIX matrixNew (const size_t rows, const size_t columns)
 create a new matrix More...
 
MATRIX matrixNewUnit (const size_t dimension)
 create a new unit matrix More...
 
void matrixDelete (MATRIX *A)
 free memory allocated by matrixNew More...
 
bool matrixGetDimension (MATRIX A, size_t *rows, size_t *columns)
 get dimensions of matrix More...
 
bool matrixEquals (MATRIX A, MATRIX B)
 compare two matrices More...
 
bool matrixSetElement (MATRIX A, const size_t row, const size_t column, const MATRIX_VALUE value)
 set one element in matrix More...
 
bool matrixSetRow (MATRIX A, const size_t row, const MATRIX_VALUE values[], const size_t valuesCount)
 set one row in matrix More...
 
bool matrixSetColumn (MATRIX A, const size_t column, const MATRIX_VALUE values[], const size_t valuesCount)
 set one column in matrix More...
 
bool matrixSet (MATRIX A, const MATRIX_VALUE values[], const size_t valuesCount)
 set values of matrix More...
 
bool matrixGetElement (MATRIX A, const size_t row, const size_t column, MATRIX_VALUE *value)
 get one element in matrix More...
 
bool matrixGetRow (MATRIX A, const size_t row, MATRIX_VALUE values[], size_t *valuesCount)
 get one row in matrix More...
 
bool matrixGetColumn (MATRIX A, const size_t column, MATRIX_VALUE values[], size_t *valuesCount)
 get one column in matrix More...
 
bool matrixGet (MATRIX A, MATRIX_VALUE values[], size_t *valuesCount)
 get values of matrix More...
 
MATRIX matrixAddition (MATRIX A, MATRIX B)
 addition of two matrices More...
 
MATRIX matrixSubstraction (MATRIX A, MATRIX B)
 subtraction of two matrices More...
 
MATRIX matrixMultiplication (MATRIX A, MATRIX B)
 multiplication of two matrices More...
 
MATRIX matrixMultiplicationScalar (MATRIX A, MATRIX_VALUE scalar)
 multiplication of matrix with scalar More...
 
MATRIX matrixTransposition (MATRIX A)
 transposition of matrix More...
 
MATRIX matrixInverse (MATRIX A)
 calculate inverse of matrix More...
 
bool matrixDeterminant (MATRIX A, MATRIX_VALUE *determinant)
 calculate determinant of matrix More...
 
MATRIX matrixClone (MATRIX A)
 clone a matrix More...
 
VECTOR matrixSolve (MATRIX A, VECTOR y)
 solve matrix A with result vector y More...
 
VECTOR vectorNew (const size_t dimension)
 create a new column vector More...
 
void vectorDelete (VECTOR *v)
 free memory allocated by vectorNew More...
 
bool vectorGetDimension (VECTOR v, size_t *dimension)
 get dimension of vector More...
 
bool vectorEquals (VECTOR v, VECTOR w)
 compare two vectors More...
 
bool vectorSetElement (VECTOR v, const size_t row, MATRIX_VALUE value)
 set one element in vector More...
 
bool vectorGetElement (VECTOR v, const size_t row, MATRIX_VALUE *value)
 get one element in vector More...
 
bool vectorSet (VECTOR v, const MATRIX_VALUE values[], const size_t valuesCount)
 set all values of vector More...
 
bool vectorGet (VECTOR v, MATRIX_VALUE values[], size_t *valuesCount)
 get all values of vector More...
 
VECTOR vectorAddition (VECTOR v, VECTOR w)
 add two vectors More...
 
VECTOR vectorSubstraction (VECTOR v, VECTOR w)
 subtract a vector More...
 
VECTOR vectorMultiplicationScalar (VECTOR v, MATRIX_VALUE scalar)
 multiply a vector with scalar More...
 
bool vectorDotProduct (VECTOR v, VECTOR w, MATRIX_VALUE *product)
 dot product of two vectors More...
 
VECTOR vectorCrossProduct (VECTOR v, VECTOR w)
 cross product of two vectors More...
 
bool vectorScalarTripleProduct (VECTOR v, VECTOR w, VECTOR x, MATRIX_VALUE *product)
 scalar triple product of three vectors More...
 
MATRIX vectorOuterProduct (VECTOR v, VECTOR w)
 outer product of two vectors More...
 
bool vectorLength (VECTOR v, MATRIX_VALUE *length)
 calculate length of vector More...
 
VECTOR vectorClone (VECTOR v)
 clone a vector More...
 

Detailed Description

prototypes of functions to calculate matrices and vectors

Author
Thomas Stalter
Version
1.00.00

Home of this file is http://www.protokollkonverter.de.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

change log

dateversionauthorcomment
04/28/20181.00.00Thomas Stalterfirst release
03/29/20180.99.00Thomas Stalterinitial version