ISF  2.2 rev 5
Intelligent Sensing Framework for Kinetis with Processor Expert
matrix.h
Go to the documentation of this file.
1 // Copyright (c) 2014, 2015, Freescale Semiconductor, Inc.
2 // All rights reserved.
3 //
4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are met:
6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above copyright
9 // notice, this list of conditions and the following disclaimer in the
10 // documentation and/or other materials provided with the distribution.
11 // * Neither the name of Freescale Semiconductor, Inc. nor the
12 // names of its contributors may be used to endorse or promote products
13 // derived from this software without specific prior written permission.
14 //
15 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18 // DISCLAIMED. IN NO EVENT SHALL FREESCALE SEMICONDUCTOR, INC. BE LIABLE FOR ANY
19 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 //
26 #ifndef MATRIX_H
27 #define MATRIX_H
28 
29 #include "basic_types.h"
30 
31 // vector components
32 enum {
33  CHX = 0,
34  CHY = 1,
35  CHZ = 2
36 };
37 enum {
38  X = 0,
39  Y = 1,
40  Z = 2
41 };
42 // function prototypes
43 void f3x3matrixAeqI(float A[][3]);
44 void f3x3matrixAeqB(float A[][3], float B[][3]);
45 void fmatrixAeqI(float *A[], int16 rc);
46 void f3x3matrixAeqScalar(float A[][3], float Scalar);
47 void f3x3matrixAeqInvSymB(float A[][3], float B[][3]);
48 void f3x3matrixAeqAxScalar(float A[][3], float Scalar);
49 void f3x3matrixAeqMinusA(float A[][3]);
50 float f3x3matrixDetA(float A[][3]);
51 void eigencompute10(float A[][10], float eigval[], float eigvec[][10], int8 n);
52 void eigencompute4(float A[][4], float eigval[], float eigvec[][4], int8 n);
53 void fmatrixAeqInvA(float *A[], int8 iColInd[], int8 iRowInd[], int8 iPivot[], int8 isize, int8* pierror);
54 
55 #endif // #ifndef MATRIX_H
float f3x3matrixDetA(float A[][3])
Definition: matrix.c:189
void eigencompute10(float A[][10], float eigval[], float eigvec[][10], int8 n)
Definition: matrix.c:203
Definition: matrix.h:35
void eigencompute4(float A[][4], float eigval[], float eigvec[][4], int8 n)
Definition: matrix.c:353
Definition: matrix.h:38
void f3x3matrixAeqScalar(float A[][3], float Scalar)
Definition: matrix.c:96
void f3x3matrixAeqI(float A[][3])
Definition: matrix.c:36
void f3x3matrixAeqInvSymB(float A[][3], float B[][3])
Definition: matrix.c:154
void f3x3matrixAeqB(float A[][3], float B[][3])
Definition: matrix.c:55
Definition: matrix.h:34
void f3x3matrixAeqMinusA(float A[][3])
Definition: matrix.c:133
signed short int int16
Definition: isf_types.h:73
Definition: matrix.h:40
void fmatrixAeqInvA(float *A[], int8 iColInd[], int8 iRowInd[], int8 iPivot[], int8 isize, int8 *pierror)
Definition: matrix.c:496
void f3x3matrixAeqAxScalar(float A[][3], float Scalar)
Definition: matrix.c:114
Definition: matrix.h:39
void fmatrixAeqI(float *A[], int16 rc)
Definition: matrix.c:75
signed char int8
Definition: isf_types.h:72
Definition: matrix.h:33