dgrat
41661f815f
AP_Math: Replace the pythagorous* functions with a variadic template
...
The new function can deal with a variable number of function parameters.
Additionally, I renamed the functions to norm(), because this is the
standard name used in several other projects.
9 years ago
Lucas De Marchi
880f130670
AP_Math: fix loss of precision on float addition
...
When using wrap_180_cd() we are adding a small float (180 * 100) to a
possibly big number. This may lose float precision as illustrated by the
unit test failing:
OUT: ../../libraries/AP_Math/tests/test_math.cpp:195: Failure
OUT: Value of: wrap_180_cd(-3600000000.f)
OUT: Actual: -80
OUT: Expected: 0.f
OUT: Which is: 0
9 years ago
dgrat
76362caee0
AP_Math: Replace wrap_* functions with template versions
9 years ago
dgrat
49cfd6fd9b
AP_Math: Add gtest support for some functions
...
These functions (or variants thereof) now have unit tests:
- is_zero()
- is_equal()
- sq()
- pythagorous()
- constrain()
- wrap_180()
- wrap_360()
Some tests in wrap_180_cd are failing: -180 should be wrapped to 180,
not -180.
9 years ago
Lucas De Marchi
ceea7540fd
AP_Math: rename test file
...
This will be reused for more math tests.
9 years ago
Gustavo Jose de Sousa
b594b5a08b
AP_Math: matrix_alg: disable FE_OVERFLOW in inverse4x4() for SITL
...
There are occasional overflows on the determinant calculation in inverse4x4()
when using calibration SITL model.
9 years ago
Gustavo Jose de Sousa
a7543d369f
AP_Math: matrix_alg: protect inverseixi() against overflow
...
Fail on inverse3x3() and inverse4x4() if there's float overflow during the
determinant calculation.
9 years ago
Gustavo Jose de Sousa
39f72610e2
AP_Math: quaternion: fix style
...
Remove trailing spaces and run astyle.
9 years ago
Andrew Tridgell
e8142b0b5b
AP_Math: added wrap_360()
9 years ago
Andrew Tridgell
97d27ce58f
AP_Math: fixed memory leak
...
found by coverity
9 years ago
Andrew Tridgell
6165c42535
AP_Math: added from_axis_angle() method on Matrix3f
...
for arbitrary rotations in simulator
9 years ago
Michael du Breuil
bb7cf6c0b6
AP_Math: Update location_sanitize to sanitize for lat/lng
9 years ago
Ricardo de Almeida Gonzaga
5bd034a5a8
Global: start using cmath instead of math.h
9 years ago
Andrew Tridgell
6bff07397e
AP_Math: added linear_interpolate() function
9 years ago
Lucas De Marchi
b4a8a0b961
AP_Math: replace header guard with pragma once
9 years ago
Gustavo Jose de Sousa
6729475b25
AP_Math: fix eulers example for PX4
9 years ago
Gustavo Jose de Sousa
d9bb696fa3
AP_Math: avoid bias in rand_num() in eulers example
...
Use RAND_MAX to avoid bias.
9 years ago
Tom Pittenger
278fb2e60d
AP_Math: add location sanity checker/fixer util
9 years ago
dgrat
672acdc8ef
AP_Math: Created location.h header for location functions
...
Helps to order AP_Math functions by purpose.
9 years ago
Lucas De Marchi
7f685a12bd
AP_Math: remove trailing whitespaces and tabs
9 years ago
dgrat
5148e41c1a
AP_Math: Cleaned macro definitions
...
Moved Definitions into a separate header. Replaced PI with M_PI and
removed the M_PI_*_F macros.
9 years ago
dgrat
7c4c8ea579
AP_Math: Remove ROTATION_COMBINATION_SUPPORT
...
This function is not used.
9 years ago
Daniel Frenzel
ead51a9d19
AP_Math: Removed useless "undef INLINE"
9 years ago
Daniel Frenzel
ef7cf7c4aa
AP_Math: Removed useless header
...
"float.h" does not exist. It is useless and wrong to include it.
9 years ago
Peter Barker
80bc7a50d7
AP_Math: define MATH_CHECK_INDEXES
...
Wrapped in ifndefs so the top-level Makefile can override
Assume MATH_CHECK_INDEXES is always defined
9 years ago
Gustavo Jose de Sousa
c2e3f05dbf
waf: ardupilotwaf: prefix build context methods with ap_
...
It helps to distinguish between things from waf and things from ardupilotwaf.
9 years ago
Gustavo Jose de Sousa
a2d2661765
waf: use methods from bld instead of ardupilotwaf for the remaining
9 years ago
Gustavo Jose de Sousa
3d22490397
waf: examples: use methods from bld instead of ardupilotwaf
9 years ago
Gustavo Jose de Sousa
d281067bcc
waf: make example binaries be placed in 'examples' dir
...
This commit makes examples' wscripts use ardupilotwaf.example() instead of
ardupilot.program().
9 years ago
Andrew Tridgell
60af7a6087
AP_Math: removed matrix3 parameter support
9 years ago
Andrew Tridgell
16e0a6d7b0
AP_Math: fixed angle between two vector3s
9 years ago
Lucas De Marchi
180359d6dd
AP_Math: fix unit test
...
For ROTATION_ROLL_90_PITCH_68_YAW_293 consider the angles as 90, 68.8
and 293.3 degrees to pre-calculate rotation. This matches the rotation
matrix used in code.
While at it, check not only the values are close enough but also the
length of the vector.
9 years ago
Lucas De Marchi
ba3325ffd3
AP_Math: rename rotation
...
The rotations are supposed to follow the name of the enum, in order. The
ROTATION_YAW_293_PITCH_68_ROLL_90 was added with the name of an
intrinsic 321 rotation, but the matrix is actually a 123 rotation,
following the other rotations already present.
Change the name to follow the other names.
9 years ago
Jonathan Challinger
83d5a6664a
AP_Math: minor changes to matrix_alg in response to review
9 years ago
bugobliterator
1a4b4fa85e
AP_Math: add inverse matrix test to check if inverse(mat)*mat = I
...
where I is an identity matrix (a matrix with diagonal elements = 1)
9 years ago
bugobliterator
fe62a049bd
AP_Math: implement LU decomposition based matrix inverse
...
Replaces previous matlab generated code, which was giving imprecise results
9 years ago
Siddharth Bharat Purohit
a0c3cbffee
AP_Math: add inverse matrix test example
...
fix example build
9 years ago
Siddharth Bharat Purohit
5af0cc8eaf
AP_Math: add inverse rotate example function
9 years ago
Jonathan Challinger
7ed8b3814f
AP_Math: add rotate_inverse to Vector3
9 years ago
Lucas De Marchi
a096703b06
Global: don't link with AP_Progmem
...
AP_Progmem is not used anymore.
9 years ago
Lucas De Marchi
502077d763
AP_Math: stop using Progmem.h
9 years ago
José Roberto de Souza
d74bd533c8
AP_Math: Add function to convert frequency to/from microseconds
9 years ago
José Roberto de Souza
38575dd87a
AP_Math: Fix parameter name in nsec_to_hz()
9 years ago
Jonathan Challinger
0a701088d4
AP_Math: fix bug in Quaternion::operator*=
9 years ago
Jonathan Challinger
fff275fd99
AP_Math: add wrap_2PI
9 years ago
Tom Pittenger
f8b0a6a977
AP_Math: compiler warnings - undeclared function
9 years ago
Tom Pittenger
103af93ec3
AP_Math: compiler warnings - float compare to constant (zero)
9 years ago
Lucas De Marchi
f5c03c786d
AP_Math: remove unused AP_ADC_AnalogSource
9 years ago
Gustavo Jose de Sousa
eef784fbe6
AP_Math: add benchmark for matrix multiplication
9 years ago
Gustavo Jose de Sousa
4266e924d0
AP_Math: add unit test for vector rotations
...
This unit test already shows that rotation is wrong for
ROTATION_YAW_293_PITCH_68_ROLL_90.
9 years ago