Sensor Fusion Library 0.6.1
Orientation sensing for Espressif (ESP32, ESP8266) processors
Loading...
Searching...
No Matches
matrix.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2015, Freescale Semiconductor, Inc.
3 * Copyright 2016-2017 NXP
4 * All rights reserved.
5 *
6 * SPDX-License-Identifier: BSD-3-Clause
7 */
8
15#ifndef MATRIX_H
16#define MATRIX_H
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21
22// function prototypes
23
26 float A[][3]
27);
30 float A[][3],
31 float B[][3]
32);
34void fmatrixAeqI(
35 float *A[],
36 int16_t rc
37);
40 float A[][3],
41 float Scalar
42);
46 float A[][3],
47 float B[][3]
48);
51 float A[][3],
52 float Scalar
53);
56 float A[][3]
57);
59float f3x3matrixDetA(
60 float A[][3]
61);
65 float A[][10],
66 float eigval[],
67 float eigvec[][10],
68 int8_t n
69);
77 float A[][4],
78 float eigval[],
79 float eigvec[][4],
80 int8_t n
81);
82void fComputeEigSlice(
83 float fmatA[10][10],
84 float fmatB[10][10],
85 float fvecA[10],
86 int8_t i,
87 int8_t j,
88 int8_t iMatrixSize
89);
93 float *A[],
94 int8_t iColInd[],
95 int8_t iRowInd[],
96 int8_t iPivot[],
97 int8_t isize,
98 int8_t* pierror
99);
102void fveqRu(
103 float fv[],
104 float fR[][3],
105 float fu[],
106 int8_t itranspose
107);
109void fVeq3x3AxV(
110 float V[3],
111 float A[][3]
112);
113
114#ifdef __cplusplus
115}
116#endif
117
118#endif // #ifndef MATRIX_H
void fEigenCompute10(float A[][10], float eigval[], float eigvec[][10], int8_t n)
Definition matrix.c:215
void f3x3matrixAeqAxScalar(float A[][3], float Scalar)
function multiplies all elements of 3x3 matrix A by the specified scalar
Definition matrix.c:109
void f3x3matrixAeqI(float A[][3])
function sets the 3x3 matrix A to the identity matrix
Definition matrix.c:26
float f3x3matrixDetA(float A[][3])
function calculates the determinant of a 3x3 matrix
Definition matrix.c:190
void f3x3matrixAeqMinusA(float A[][3])
function negates all elements of 3x3 matrix A
Definition matrix.c:128
void f3x3matrixAeqInvSymB(float A[][3], float B[][3])
Definition matrix.c:149
void fEigenCompute4(float A[][4], float eigval[], float eigvec[][4], int8_t n)
Definition matrix.c:388
void fmatrixAeqInvA(float *A[], int8_t iColInd[], int8_t iRowInd[], int8_t iPivot[], int8_t isize, int8_t *pierror)
Definition matrix.c:647
void f3x3matrixAeqScalar(float A[][3], float Scalar)
function sets every entry in the 3x3 matrix A to a constant scalar
Definition matrix.c:90
void f3x3matrixAeqB(float A[][3], float B[][3])
function sets 3x3 matrix A to 3x3 matrix B
Definition matrix.c:47
void fveqRu(float fv[], float fR[][3], float fu[], int8_t itranspose)
Definition matrix.c:801
void fVeq3x3AxV(float V[3], float A[][3])
function multiplies the 3x1 vector V by a 3x3 matrix A
Definition matrix.c:852
void fmatrixAeqI(float *A[], int16_t rc)
function sets the matrix A to the identity matrix
Definition matrix.c:68