Commit Graph

46 Commits

Author SHA1 Message Date
Matthias Grob ea4fdfd637 matrix: fix internal include chain 2024-01-30 11:46:33 -05:00
Daniel Agar d45c3d3407 ekf2: verbose (DEBUG_BUILD) print status with Matrix improved print
* ekf2: verbose print status
 * matrix/Matrix improve print output
 * bold diagonal elements, print ring buffer entry size
 * print in scientific notation when >= 10 to respect max size

---------

Co-authored-by: bresch <brescianimathieu@gmail.com>
2024-01-10 09:46:04 -05:00
Matthias Grob bcb2b1ad40 matrix: fix slice to slice assignment to do deep copy
To fix usage of a.xy() = b.xy() which should copy
the first two elements over into a and not act on a copy of a.
2023-12-21 11:42:08 +01:00
bresch 9c41c06325 square matrix: add function to uncorrelate part of the matrix 2023-09-19 09:37:50 -04:00
bresch b612467593 square matrix: add partial trace computation
This is useful when we need the sum of some variances in a large
covariance matrix
2023-09-19 09:37:50 -04:00
bresch 01fc4c3cf1 SquareMatrix: add functions to copy upper and lower triangle 2023-08-08 12:09:56 -04:00
Matthias Grob 37d3218d11 matrix: add 2d rotation matrix 2023-04-15 21:57:40 +02:00
Matthias Grob b1435c6e34 matrix: use output stream function template
to enable proper automatic output in gtest unit tests
that compare two `Matrix`, `Vector` or two `Dual` objects.

Credits to @jwidauer for showing me this trick.
2023-03-21 15:01:26 +01:00
Matthias Grob b0189d95af Use new Vector4 class 2023-03-21 15:01:26 +01:00
Matthias Grob 08d6465ce5 matrix: add explicit Vector4 type 2023-03-21 15:01:26 +01:00
Eric Katzfey 34c852255e Changed M_PI to M_PI_F in the matrix library since M_PI is non-standard. (#20458)
* Changed M_PI to M_PI_F in the matrix library since M_PI is non-standard.

* Added a new M_PI_PRECISE constant definition to px4_platform_common/defines.h to be
used in places when M_PI is desired but shouldn't be used because it is not C standard.

* Added the px4_platform_common/defines.h include to the matrix library math.hpp header to pull
in some non-standard M_PI constants and updated the test files to use those constants.

* Fixed PI constants in matrix helper test to prevent test failure
2022-10-31 11:51:23 -04:00
Matthias Grob 93de9567a5 Matrix: add isAllFinite() to check if every element is finite 2022-10-19 19:09:20 +02:00
Daniel Agar a73efd9c4f NuttX carry minimal c++ cmath (replacing Matrix stdlib_imports.hpp) 2022-07-12 08:05:06 -04:00
Matthias Grob d0abcc1ca3 MatrixHelperTest: add unit tests for the signum function 2022-03-23 08:47:52 +01:00
Matthias Grob 9ab99a7689 MatrixHelperTest: don't rely on FLOAT_EQ accepting FLT_EPSILON inaccuracy 2022-03-18 13:35:18 +01:00
Thomas Stastny 144697bb6a MatrixHelperTest: correct wrap compare values 2022-03-18 13:35:18 +01:00
Matthias Grob cde7b1bc41 Matrix: remove deprecated minimal test framework 2022-03-17 13:02:22 +01:00
Matthias Grob 91493307b9 Matrix: convert vector test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 4b63f6b29a Matrix: convert vector assignment test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob f4b53d2762 Matrix: convert vector3 test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob ddfd62dfc2 Matrix: convert vector2 test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob be28aeb3ee Matrix: convert upper right triangle test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 4d43aad847 Matrix: convert transpose test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob b3cc18c6de Matrix: convert square test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 555ed9b9d8 Matrix: convert slice test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 46df8ab60c Matrix: convert set identity test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 831f0e9aac Matrix: convert scalar multiplication test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 38d742f1b5 Matrix: convert pseudo inverse test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 57e443c4a4 Matrix: convert multiplication test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 719898f1e3 Matrix: convert least squares test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob fddcf342e9 Matrix: convert inverse test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob f5ec4b2339 Matrix: convert integral test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 7c9e28c168 Matrix: convert helper test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 0c4c3a917c Matrix: convert hat vee test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 8f695a5613 Matrix: convert filter test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 79e8152f05 Matrix: convert dual test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 62571b6984 Matrix: convert copy to test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 35b035e880 Matrix: convert attitude test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob c33bf5b705 Matrix: convert assignment test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob fa35635486 Matrix: change naming of sparse vector test 2022-03-17 13:02:22 +01:00
Matthias Grob c4bc062714 helper_functions: generalize unwrapping function 2022-03-08 10:56:32 +01:00
Thomas Stastny 5a3aba9c21 matrix: add angle unwrapping method 2022-03-08 10:56:32 +01:00
Matthias Grob 68a0414622 Quaternion: rename function to rotate vectors 2022-03-07 20:03:54 -05:00
Daniel Agar 96bf3aa5d0 matrix: apply PX4 astyle 2021-11-16 12:30:51 -05:00
Daniel Agar ab07f5300b lib/matrix: delete unused and add testing to PX4 2021-11-16 12:27:14 -05:00
Daniel Agar 4a3d64f1d7 consume PX4/Matrix repository and preserve history 2021-11-16 12:24:19 -05:00