summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Matrix transpose doesn't edit memory representationJasper4 days
| | | | | | | | - transpose swaps dimensions - transpose sets variable to indicate it has been transposed - matrix_at acts accordingly - matrix_foreach_idx now uses matrix_at to set the iterator to allow iterating over a transposed matrix
* Fixed loop bound bug in macroJasper6 days
|
* Removed double occurence of function declarationJasper6 days
|
* Building with tcc (for fun)Jasper6 days
|
* Removed useless declaration in LR decompositionJasper7 days
|
* Variadic functions to free matrices/vectorsJasper7 days
| | | | | Renamed 'matrix_freen' to 'matrix_free_many1'. Frees a dynamic array of matrices.
* FormattingJasper7 days
|
* Fixed memory issue in 'matrix_backsubst'Jasper7 days
| | | | | Freeing the resulting vector resulted in an 'invalid pointer' exception.
* 'Matrix' -> 'Vector' where neededJasper8 days
|
* Used forward declaration in vector.hJasper8 days
| | | | | | | Also added tag 'Matrix' to struct 'Matrix'. Makes forwards declaration available for 'Matrix'. Avoids having to import matrix.h in vector.h (and the other way around), when accessing matrix functionality.
* Reordered includesJasper8 days
|
* FormattingJasper8 days
|
* Added vector structJasper8 days
| | | | It's completely based on the existing matrix struct and its functions.
* Used calloc instead of allocJasper8 days
| | | | | Calloc initializes the elements with 0 instead of possibly undefined behavior. 'matrix_const(..., ..., 0)' is not needed anymore
* More functions with '1' suffixJasper8 days
| | | | | | | | Added more versions of existing functions with suffix '1' that take a matrix as argument and perform the action (e.g. filling a matrix with random entries) to the passed matrix. 'matrix_add' and 'matrix_scale' save the result in the matrix passed first.
* 'matrix_is_square' is now a macroJasper11 days
|
* Check if matrix is column or row vectorJasper11 days
|
* Added macros to iterate over matrixJasper11 days
| | | | | | | | | | | This avoids having to write double for-loops again and again. - 'matrix_loop' just replaces the loops and gives access to the indices i and j - 'matrix_foreach' initializes a double pointer to the current element - 'matrix_foreach_idx' is combination of the two above All for-loops that simply iterate over a matrix have been replaced.
* More work on benchmarking, simplified 1st versionJasper13 days
| | | | | | | | The performance of functions (with one or two matrix arguments) can now be benchmarked. To time and analyse most functions, the user does not have to handle the memory or pass matrices. Just provide the dimensions, function name, (optional) string with details, and missing arguments to the function.
* '__VA_ARGS__' in benchmark macro -> '##__VA_ARGS__'Jasper2025-09-02
| | | | | Seems to solve the empty argument problem for macros with variadic argument lists. GCC only
* Started work on macros to benchmark given functionsJasper2025-09-01
|
* Swap order of arguments for matrix_scale()Jasper2025-09-01
|
* Merge row-swap and col-swapJasper2025-09-01
|
* Added functions to swap rows and colsJasper2025-09-01
|
* Removed const in front of non-pointer typesJasper2025-09-01
|
* Removed '_MatrixType' and '_Matrix' from typedefsJasper2025-09-01
|
* Tolerance check of absolute value in 'matrix_eq'Jasper2025-09-01
|
* Initial commitJasper2025-08-31