EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CbmLitMatrixMath.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file CbmLitMatrixMath.h
1 #ifndef CBMLITMATRIXMATH_H_
2 #define CBMLITMATRIXMATH_H_
3 
4 #include "base/CbmLitFloat.h"
5 
6 #include <vector>
7 
8 //Matrix operations
9 
10 /* 5x5 symmetric matrix inverse */
11 bool InvSym15(
12  std::vector<litfloat>& a);
13 
14 /* Multiplication of two 5x5 matrices */
15 bool Mult25(
16  const std::vector<litfloat>& a,
17  const std::vector<litfloat>& b,
18  std::vector<litfloat>& c);
19 
20 /* Multiplication of 5x5 matrix and 5x1 vector */
21 bool Mult25On5(
22  const std::vector<litfloat>& a,
23  const std::vector<litfloat>& b,
24  std::vector<litfloat>& c);
25 
26 /* Multiplication of 5x5 matrix and 5x1 vector */
27 bool Mult15On5(
28  const std::vector<litfloat>& a,
29  const std::vector<litfloat>& b,
30  std::vector<litfloat>& c);
31 
32 /* Transpose of 5x5 matrix */
33 bool Transpose25(
34  std::vector<litfloat>& a);
35 
36 /* Subtraction of two matrices*/
37 bool Subtract(
38  const std::vector<litfloat>& a,
39  const std::vector<litfloat>& b,
40  std::vector<litfloat>& c);
41 
42 /* Addition of two matrices*/
43 bool Add(
44  const std::vector<litfloat>& a,
45  const std::vector<litfloat>& b,
46  std::vector<litfloat>& c);
47 
48 /* a*b*a^T */
49 bool Similarity(
50  const std::vector<litfloat>& a,
51  const std::vector<litfloat>& b,
52  std::vector<litfloat>& c);
53 
54 /* Multiplication of two 5x5 matrices */
55 bool Mult15On25(
56  const std::vector<litfloat>& a,
57  const std::vector<litfloat>& b,
58  std::vector<litfloat>& c);
59 
60 /* Multiplication of two 5x5 matrices */
61 bool Mult25On15(
62  const std::vector<litfloat>& a,
63  const std::vector<litfloat>& b,
64  std::vector<litfloat>& c);
65 
66 #endif
67