51 #define VECTOR_STANDARD_DIMENSION 3 170 extern bool matrixSetElement(MATRIX A,
const size_t row,
const size_t column,
const MATRIX_VALUE value);
184 extern bool matrixSetRow(MATRIX A,
const size_t row,
const MATRIX_VALUE
values[],
const size_t valuesCount);
199 extern bool matrixSetColumn(MATRIX A,
const size_t column,
const MATRIX_VALUE
values[],
const size_t valuesCount);
218 extern bool matrixSet(MATRIX A,
const MATRIX_VALUE
values[],
const size_t valuesCount);
231 extern bool matrixGetElement(MATRIX A,
const size_t row,
const size_t column, MATRIX_VALUE *value);
246 extern bool matrixGetRow(MATRIX A,
const size_t row, MATRIX_VALUE
values[],
size_t *valuesCount);
261 extern bool matrixGetColumn(MATRIX A,
const size_t column, MATRIX_VALUE
values[],
size_t *valuesCount);
280 extern bool matrixGet(MATRIX A, MATRIX_VALUE
values[],
size_t *valuesCount);
405 extern VECTOR
vectorNew(
const size_t dimension);
448 extern bool vectorSetElement(VECTOR v,
const size_t row, MATRIX_VALUE value);
460 extern bool vectorGetElement(VECTOR v,
const size_t row, MATRIX_VALUE *value);
474 extern bool vectorSet(VECTOR v,
const MATRIX_VALUE
values[],
const size_t valuesCount);
488 extern bool vectorGet(VECTOR v, MATRIX_VALUE
values[],
size_t *valuesCount);
593 extern bool vectorLength(VECTOR v, MATRIX_VALUE *length);
VECTOR vectorCrossProduct(VECTOR v, VECTOR w)
cross product of two vectors
Definition: matrix.c:617
bool matrixDeterminant(MATRIX A, MATRIX_VALUE *determinant)
calculate determinant of matrix
Definition: matrix.c:440
bool vectorGet(VECTOR v, MATRIX_VALUE values[], size_t *valuesCount)
get all values of vector
Definition: matrix.c:577
MATRIX matrixNew(const size_t rows, const size_t columns)
create a new matrix
Definition: matrix.c:85
VECTOR vectorSubstraction(VECTOR v, VECTOR w)
subtract a vector
Definition: matrix.c:587
VECTOR vectorClone(VECTOR v)
clone a vector
Definition: matrix.c:689
bool vectorGetDimension(VECTOR v, size_t *dimension)
get dimension of vector
Definition: matrix.c:532
bool vectorSetElement(VECTOR v, const size_t row, MATRIX_VALUE value)
set one element in vector
Definition: matrix.c:562
size_t columns
Definition: matrix.c:55
bool matrixEquals(MATRIX A, MATRIX B)
compare two matrices
Definition: matrix.c:142
bool vectorEquals(VECTOR v, VECTOR w)
compare two vectors
Definition: matrix.c:544
bool matrixSetElement(MATRIX A, const size_t row, const size_t column, const MATRIX_VALUE value)
set one element in matrix
Definition: matrix.c:162
VECTOR vectorAddition(VECTOR v, VECTOR w)
add two vectors
Definition: matrix.c:582
bool matrixGetElement(MATRIX A, const size_t row, const size_t column, MATRIX_VALUE *value)
get one element in matrix
Definition: matrix.c:173
bool vectorGetElement(VECTOR v, const size_t row, MATRIX_VALUE *value)
get one element in vector
Definition: matrix.c:567
struct _MATRIX * VECTOR
instance pointer of a vector
Definition: matrix.h:65
size_t rows
Definition: matrix.c:54
VECTOR vectorMultiplicationScalar(VECTOR v, MATRIX_VALUE scalar)
multiply a vector with scalar
Definition: matrix.c:592
bool vectorSet(VECTOR v, const MATRIX_VALUE values[], const size_t valuesCount)
set all values of vector
Definition: matrix.c:572
MATRIX matrixAddition(MATRIX A, MATRIX B)
addition of two matrices
Definition: matrix.c:271
VECTOR matrixSolve(MATRIX A, VECTOR y)
solve matrix A with result vector y
Definition: matrix.c:486
MATRIX matrixNewUnit(const size_t dimension)
create a new unit matrix
Definition: matrix.c:103
bool matrixSetColumn(MATRIX A, const size_t column, const MATRIX_VALUE values[], const size_t valuesCount)
set one column in matrix
Definition: matrix.c:211
internal description of a matrix
Definition: matrix.c:53
bool matrixGetDimension(MATRIX A, size_t *rows, size_t *columns)
get dimensions of matrix
Definition: matrix.c:128
MATRIX_VALUE * values
Definition: matrix.c:56
bool matrixGet(MATRIX A, MATRIX_VALUE values[], size_t *valuesCount)
get values of matrix
Definition: matrix.c:254
bool matrixSetRow(MATRIX A, const size_t row, const MATRIX_VALUE values[], const size_t valuesCount)
set one row in matrix
Definition: matrix.c:184
bool matrixGetColumn(MATRIX A, const size_t column, MATRIX_VALUE values[], size_t *valuesCount)
get one column in matrix
Definition: matrix.c:224
VECTOR vectorNew(const size_t dimension)
create a new column vector
Definition: matrix.c:522
double MATRIX_VALUE
type of supported value
Definition: matrix.h:73
void matrixDelete(MATRIX *A)
free memory allocated by matrixNew
Definition: matrix.c:115
bool matrixSet(MATRIX A, const MATRIX_VALUE values[], const size_t valuesCount)
set values of matrix
Definition: matrix.c:238
void matrixPrint(MATRIX A)
print matrix
Definition: matrix.c:63
bool vectorLength(VECTOR v, MATRIX_VALUE *length)
calculate length of vector
Definition: matrix.c:672
struct _MATRIX * MATRIX
instance pointer of a matrix
Definition: matrix.h:57
bool vectorScalarTripleProduct(VECTOR v, VECTOR w, VECTOR x, MATRIX_VALUE *product)
scalar triple product of three vectors
Definition: matrix.c:641
MATRIX matrixInverse(MATRIX A)
calculate inverse of matrix
Definition: matrix.c:404
MATRIX vectorOuterProduct(VECTOR v, VECTOR w)
outer product of two vectors
Definition: matrix.c:657
MATRIX matrixSubstraction(MATRIX A, MATRIX B)
subtraction of two matrices
Definition: matrix.c:292
MATRIX matrixMultiplicationScalar(MATRIX A, MATRIX_VALUE scalar)
multiplication of matrix with scalar
Definition: matrix.c:329
void vectorDelete(VECTOR *v)
free memory allocated by vectorNew
Definition: matrix.c:527
bool vectorDotProduct(VECTOR v, VECTOR w, MATRIX_VALUE *product)
dot product of two vectors
Definition: matrix.c:597
MATRIX matrixMultiplication(MATRIX A, MATRIX B)
multiplication of two matrices
Definition: matrix.c:303
bool matrixGetRow(MATRIX A, const size_t row, MATRIX_VALUE values[], size_t *valuesCount)
get one row in matrix
Definition: matrix.c:197
MATRIX matrixClone(MATRIX A)
clone a matrix
Definition: matrix.c:474
MATRIX matrixTransposition(MATRIX A)
transposition of matrix
Definition: matrix.c:346