Statistics
| Branch: | Revision:

adafruit_bno055 / utility @ dffa812e

# Date Author Comment
b5582106 2016-03-08 14:58 Gé Vissers

Add attribution line for fixes in utility code

3cae40b9 2016-03-04 13:53 Gé Vissers

It makes no sense to return 0 for the vector norm when the vector contains
NaNs. Just return NaN instead, Furthermore don't refuse to normalize vectors
when the length is small. Unless the length really is zero, it should be safe
to scale with the inverse length.

3e12eaa8 2016-03-04 11:45 Gé Vissers

Unless all vector length are very close to unity, trying to avoid taking a
square root only slows things down (at least on x86_64 and Arduino Uno).

651c5f56 2016-02-26 17:37 Gé Vissers

limit scope of loop variable

a61c970f 2016-02-26 15:38 Gé Vissers

Fix use of abs() function with float argument.

The abs() function in stdlib.h takes an integer argument. Passing it a float
will silently convert the argument to int, and take the absolute value of the
result. Hence, abs(0.99) == 0, which is not what was intended. Use fabs instead.

d7b28532 2016-02-26 15:34 Gé Vissers

make member functions const where appropriate, and pass vectors by reference

a6c06c10 2016-02-26 15:33 Gé Vissers

Remove unused include

fd9de024 2016-02-26 13:20 Gé Vissers

The cross product is only defined for 3D vectors. Instead of checking the size
at runtime, only provide an implementation for N==3. Trying to use the cross
function with other vector sizes will then result in a link error.

7ede6000 2016-02-25 16:04 Gé Vissers

Excessive parentheses only make the expressions hareder to read.

2dd31024 2016-02-25 15:45 Gé Vissers

Replace use of float by double.

All values in a quaternion are declared double, let's not lose precision on
platforms where double is larger than float.

2b07acc9 2016-02-25 15:42 Gé Vissers

Simplify a few more functions, and pass vector arguments by reference

88b09bb5 2016-02-25 15:20 Gé Vissers

Simplify constructors

0ecc7129 2016-02-25 15:09 Gé Vissers

Simplify several functions by replacing the body with one-line calls to the
constructor. Furthermore, pass Quaternion arguments by reference to avoid
excessive copying.

4a94251b 2016-02-25 14:52 Gé Vissers

Quaternion needs the definition of a matrix. Include it.

e8e79779 2016-02-25 14:04 Gé Vissers

Fix conversion of impure rotation matrices to quaternions

The test for the largest element in the matrix diagonal was reversed, which
resulted in taking the square root of a negative value for matrices with
determinant less than zero.

02609f56 2016-02-24 16:09 Gé Vissers

Store determinant as double when computing matrix inverse. Does not matter on Arduino, but might on other platforms.

ba125e3b 2016-02-24 15:20 Gé Vissers

The recursive definition of the determinant function, combined with the fact
that no specialized function for the base case N==1 is given, leads to
instantiation of this function for all 256 possible values of a uint8_t (even
though these are not used in practice). Fix this by providing an explicit...

3e5e5286 2016-02-24 14:37 Gé Vissers

Remove inclusion of unused headers

322c0d59 2016-02-24 14:35 Gé Vissers

Fix calculation of inverse. We should divide by the determinant instead of multiply with it.

55604844 2016-02-24 14:01 Gé Vissers

Fix minor_matrix() accessing data past end of array.

b79e511b 2016-02-24 13:55 Gé Vissers

Get rid of superfluous _cell member

b5f89f32 2016-02-24 13:52 Gé Vissers

Use more standard (i, j) index names and constify transpose()

771690b8 2016-02-24 13:48 Gé Vissers

Prevent copying row data for every element in matrix multiplication.

364879d2 2016-02-24 13:45 Gé Vissers

Dox matrix addition, subtraction, and scalar multiplication using a single loop instead of a double loop.

9f03e367 2016-02-24 13:38 Gé Vissers

make row and column retrieval function const, pass Vector arguments to row and column setters as const reference

8208cc49 2016-02-24 13:32 Gé Vissers

Use a single loop to copy matrices

9c729628 2016-02-24 13:26 Gé Vissers

Add functions for reading elements of constant matrix

a2da8ab6 2016-02-24 13:24 Gé Vissers

Fix memset() in constructors writing past end of data

c2a8045b 2016-02-24 13:20 Gé Vissers

Include vector.h, so that including just matrix.h will pull in the requested dependencies

b2d499c7 2015-05-21 22:15 Paul Du Bois (laptop)

Remove unnecessary double* pointer from Vector<N>

The pointer prevents the use of bitwise move/copy/initialize operations
on Vector(). Less importantly, it's an unnecessary memory bloat.

abce6607 2015-05-21 22:15 Paul Du Bois (laptop)

Bug fix for Vector::magnitude()

Sample failure: Vector<1>(0.5).magnitude() returns 1, not 0.5.
The avoid-sqrt optimization is dubious at best, and should arguably
just be removed.

0695bf91 2015-05-21 22:15 Paul Du Bois (laptop)

Add "const" to non-mutating Vector, Quat methods

Also adds some clarifying documentation, since the quat->euler axis
conventions are a bit surprising.

d964148c 2015-05-01 20:30 Tony DiCola

Switch from dynamic memory to stack allocated memory for imumath types, add TinyWireM support, make indentation consistent.

4bc1c0c1 2015-04-05 01:45 Kevin Townsend

First commit