Commit Graph

414 Commits

Author SHA1 Message Date
Miguel Arroyo
7cea21afa2 AP_Math: Moves rand_vec3f from SITL_State. 2017-06-29 09:22:08 +10:00
Francisco Ferreira
da5060964b AP_Math: uniformize template type parameter keyword
Use typename everywhere instead of class
2017-06-21 18:19:31 +09:00
Francisco Ferreira
1ffe12008c AP_Math: adapt test for new norm method API 2017-06-21 18:19:31 +09:00
Francisco Ferreira
7b98f41947 AP_Math: correct norm to need two arguments
Correctly use sqrtf instead of the double version
Stop casting to float since sq already returns one
2017-06-21 18:19:31 +09:00
Randy Mackay
db45442de2 AP_Math: remove unused angle method 2017-06-09 15:21:58 +09:00
Michael du Breuil
2cd6ff6dd5 AP_Math: Accept float epsilon in is_positive is_negative as a valid result 2017-05-27 10:46:59 -07:00
Michael du Breuil
5a15413513 AP_Math: Add is_negative and is_positive helpers 2017-05-24 15:22:27 -07:00
Andrew Tridgell
607220d12b AP_Math: rename macros to avoid conflicts
these macros were also defined in NuttX in clock.h
2017-05-06 15:21:14 +10:00
Andrew Tridgell
2fcecaa7c5 AP_Math: added rand_float() 2017-05-03 20:12:04 +10:00
Pierre Kancir
f2812c1efd AP_Math: example fix travis warning
missing function declaration
implicit cast
some style fix
2017-04-13 19:56:16 +01:00
Tom Pittenger
1abeb03d2b AP_Math: remove HAL_CPU_CLASS_16 2017-04-12 17:25:30 -07:00
Andrey Kolobov
a1fa2a9de3 AP_Math: added matrixN for soaring controller 2017-03-14 08:35:44 +11:00
Francisco Ferreira
7afcbf51ec
AP_Math: also fix SEC_PER_WEEK 2017-03-13 02:57:30 +00:00
murata
1982285e23 AP_Math: update MSEC_PER_SEC definition to fix GPS time calcs 2017-03-13 11:50:33 +09:00
Michael du Breuil
c5c94949bf AP_Math: Extend vector2::angle(vector2) to distinguish parallel and antiparallel vectors
There are a number of use cases where distingusihing antiparallel from parallel vectors is important
2017-03-02 00:50:44 +00:00
Michael du Breuil
97c57764c4 AP_Math: Add a 3D location difference, returning NED 2017-02-13 09:23:14 +11:00
murata
30151c8253 Global: Define MSEC_PER_SEC, MSEC_PER_WEEK, SEC_PER_WEEK and UNIX_OFFSET. 2017-02-11 01:34:09 -08:00
Lucas De Marchi
2b9478f430 AP_Math: tests: make both arguments double
libraries/AP_Math/tests/test_math.cpp.3.o: In function `MathTest_IsEqual_Test::TestBody()':
test_math.cpp:(.text._ZN21MathTest_IsEqual_Test8TestBodyEv+0x1a0): undefined reference to `std::enable_if<std::is_floating_point<std::common_type<float, double>::type>::value, bool>::type is_equal<float, double>(float, double)'
collect2: error: ld returned 1 exit status
2017-02-06 09:27:22 -08:00
Lucas De Marchi
008ac0a2a8 AP_Math: remove unused double instantiation 2017-02-06 09:27:22 -08:00
Lucas De Marchi
87038d8ef1 AP_Math: add casts to consider literals as doubles
Since we pass -fsingle-precision-constant to the compiler, add casts to
make literals real doubles.
2017-02-06 09:27:22 -08:00
Lucas De Marchi
48d94db259 AP_Math: double constants need a type
We can't use define since we use -fsingle-precision-constant and they
would be interpreted as float.
2017-02-06 09:27:22 -08:00
Lucas De Marchi
a500aced3c AP_Math: remove unused double constants 2017-02-06 09:27:22 -08:00
Lucas De Marchi
87c82ce0c6 AP_Math: add some more tests for constrain_value() 2017-01-27 12:15:20 -08:00
Lucas De Marchi
82d210144b AP_Math: remove warnings from constrain_value()
Return type is T which can be an integral type, float or double. By
dividing by 2 we avoid float operation on the first case and do the
right thing on the second and third.
2017-01-27 12:15:19 -08:00
Lucas De Marchi
2605c7265b AP_Math: remove warnings from safe_asin()
Return type is float, so operate on float types everywhere.
Fixes this warning while building for PX4:

../../libraries/AP_Math/AP_Math.cpp: In instantiation of 'float safe_asin(T) [with T = double]':
../../libraries/AP_Math/AP_Math.cpp:56:48:   required from here
../../libraries/AP_Math/AP_Math.cpp:44:11: warning: implicit conversion from 'float' to 'double' to match other operand of binary expression [-Wdouble-promotion]
     if (v >= 1.0f) {
           ^
../../libraries/AP_Math/AP_Math.cpp:47:11: warning: implicit conversion from 'float' to 'double' to match other operand of binary expression [-Wdouble-promotion]
     if (v <= -1.0f) {
           ^
2017-01-27 12:15:19 -08:00
Lucas De Marchi
69a9cd3625 AP_Math: add tests to is_equal()
Contemplate the use of double values.
2017-01-27 12:15:19 -08:00
Lucas De Marchi
4f8d2059f8 AP_Math: use right epsilon for is_equal()
We are calling fabsf(), which returns a float. We should use the epsilon
from float type, not from the argument type passed to fabsf().

On the other hand when the double version is instantiated we do want to
use the std::numeric_limits<double>::epsilon() value.

This adds a branch to the function, but it's removed when the function
is intantiated by the compiler since the type is known at compile-time.

Fixes this warning when building for PX4:
../../libraries/AP_Math/AP_Math.cpp: In instantiation of 'typename std::enable_if<std::is_floating_point<typename std::common_type<_Tp, _Up>::type>::value, bool>::type is_equal(Arithmetic1, Arithmetic2) [with Arithmetic1 = double; Arithmetic2 = double; typename std::enable_if<std::is_floating_point<typename std::common_type<_Tp, _Up>::type>::value, bool>::type = bool]':
../../libraries/AP_Math/AP_Math.cpp:23:66:   required from here
../../libraries/AP_Math/AP_Math.cpp:17:29: warning: implicit conversion from 'float' to 'double' to match other operand of binary expression [-Wdouble-promotion]
     return fabsf(v_1 - v_2) < std::numeric_limits<decltype(v_1 - v_2)>::epsilon();
                             ^
2017-01-27 12:15:19 -08:00
murata
ec4cce15a1 AP_Math: Unify from print or println to printf. 2017-01-27 18:20:22 +11:00
Andrew Tridgell
67a2441b12 AP_Math: started a set of crc functions
these functions are often common between drivers
2017-01-27 18:11:29 +11:00
murata
e903cb9945 AP_Math: Change mask value to hexadecimal number. 2017-01-17 10:20:15 -08:00
Pierre Kancir
47f1a754c5 AP_Math: add some test for vector2 equality test 2016-12-20 14:09:04 +00:00
Pierre Kancir
eae093cd2a AP_Math: add test for is_equal for int 2016-12-20 14:09:04 +00:00
Pierre Kancir
da49149d19 AP_Math: is_equal correct comparison for integer as epsilon doesn't exist.
Credit to Kwikius for the right solution
2016-12-20 14:09:04 +00:00
Pierre Kancir
ce734b5f7b AP_Math: Remove unecessary check 2016-12-19 14:36:03 +00:00
Pierre Kancir
556993d7f0 AP_Math: Vector2 add == operator for int 2016-12-06 09:31:21 -08:00
Pierre Kancir
6bf1322633 AP_Math: polygon.cpp correct float comparison 2016-12-06 09:31:21 -08:00
Pierre Kancir
79a9e8dfad AP_Math: Matrix_alg fix implicite cast from bool to float 2016-12-05 12:39:31 -08:00
Pierre Kancir
fb7a00799f AP_Math: quaternion fix missing return 2016-12-05 10:33:41 -08:00
Andrew Tridgell
a8d10e8c2c AP_Math: added get_random16() 2016-12-02 09:49:38 +11:00
murata
f9add59b58 Global: Aggregate the same definitions.
Global: Aggregate the same definitions.
2016-11-09 11:46:55 -03:00
Andrew Tridgell
b00fd95725 AP_Math: define Vector3l for += op 2016-11-09 17:08:13 +11:00
murata
c808ee2f49 Global: To nullptr from NULL.
RC_Channel: To nullptr from NULL.

AC_Fence: To nullptr from NULL.

AC_Avoidance: To nullptr from NULL.

AC_PrecLand: To nullptr from NULL.

DataFlash: To nullptr from NULL.

SITL: To nullptr from NULL.

GCS_MAVLink: To nullptr from NULL.

DataFlash: To nullptr from NULL.

AP_Compass: To nullptr from NULL.

Global: To nullptr from NULL.

Global: To nullptr from NULL.
2016-11-02 16:04:47 -02:00
Mathieu OTHACEHE
152edf7189 Global: remove mode line from headers
Using a global .dir-locals.el file is a better alternative than
reincluding the same emacs header in every file of the project.
2016-10-24 09:42:01 -02:00
Jonathan Challinger
80d9092993 AP_Math: remove rotateXY and rotateXYinv 2016-10-13 10:02:14 +11:00
Lucas De Marchi
ae53920e5b build: don't build examples with old build system
We currently check examples are buildable with waf which doesn't need
the libraries to be specified in a make.inc file.  Having the makefiles
there is misleading since people try to build and realize the build is
broken.
2016-10-11 13:03:08 +11:00
Lucas De Marchi
0d4caa3ccc AP_Math: remove declaration of not implemented functions 2016-08-03 00:16:35 -03:00
Murilo Belluzzo
70942472d3 AP_Math: Matrix: Change deallocator to match allocator used 2016-08-03 00:09:11 -03:00
Lucas De Marchi
7b7e73680f AP_Math: add USEC_PER_MSEC 2016-07-30 00:55:28 -03:00
Peter Barker
2047d53470 Math: move closest_point in from AC_Avoid 2016-07-25 20:24:37 +09:00
Peter Barker
779f78d471 AP_Math: vector3 perpendicular function 2016-07-25 20:24:37 +09:00