CbmRoot
Loading...
Searching...
No Matches
CbmLitMatrixMath.h
Go to the documentation of this file.
1/* Copyright (C) 2009-2017 GSI/JINR-LIT, Darmstadt/Dubna
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Andrey Lebedev [committer] */
4
5#ifndef CBMLITMATRIXMATH_H_
6#define CBMLITMATRIXMATH_H_
7
8#include "base/CbmLitFloat.h"
9
10#include <vector>
11
12//Matrix operations
13
14/* 5x5 symmetric matrix inverse */
15bool InvSym15(std::vector<litfloat>& a);
16
17/* Multiplication of two 5x5 matrices */
18bool Mult25(const std::vector<litfloat>& a, const std::vector<litfloat>& b, std::vector<litfloat>& c);
19
20/* Multiplication of two 6x6 matrices */
21bool Mult36(const std::vector<litfloat>& a, const std::vector<litfloat>& b, std::vector<litfloat>& c);
22
23/* Multiplication of 5x5 matrix and 5x1 vector */
24bool Mult25On5(const std::vector<litfloat>& a, const std::vector<litfloat>& b, std::vector<litfloat>& c);
25
26/* Multiplication of 5x5 matrix and 5x1 vector */
27bool Mult15On5(const std::vector<litfloat>& a, const std::vector<litfloat>& b, std::vector<litfloat>& c);
28
29/* Transpose of 5x5 matrix */
30bool Transpose25(std::vector<litfloat>& a);
31
32/* Subtraction of two matrices*/
33bool Subtract(const std::vector<litfloat>& a, const std::vector<litfloat>& b, std::vector<litfloat>& c);
34
35/* Addition of two matrices*/
36bool Add(const std::vector<litfloat>& a, const std::vector<litfloat>& b, std::vector<litfloat>& c);
37
38/* a*b*a^T */
39bool Similarity(const std::vector<litfloat>& a, const std::vector<litfloat>& b, std::vector<litfloat>& c);
40
41/* Multiplication of two 5x5 matrices */
42bool Mult15On25(const std::vector<litfloat>& a, const std::vector<litfloat>& b, std::vector<litfloat>& c);
43
44/* Multiplication of two 5x5 matrices */
45bool Mult25On15(const std::vector<litfloat>& a, const std::vector<litfloat>& b, std::vector<litfloat>& c);
46
47#endif
Define floating point number type litfloat.
bool Similarity(const std::vector< litfloat > &a, const std::vector< litfloat > &b, std::vector< litfloat > &c)
bool Add(const std::vector< litfloat > &a, const std::vector< litfloat > &b, std::vector< litfloat > &c)
bool Transpose25(std::vector< litfloat > &a)
bool Mult15On5(const std::vector< litfloat > &a, const std::vector< litfloat > &b, std::vector< litfloat > &c)
bool Subtract(const std::vector< litfloat > &a, const std::vector< litfloat > &b, std::vector< litfloat > &c)
bool Mult25On15(const std::vector< litfloat > &a, const std::vector< litfloat > &b, std::vector< litfloat > &c)
bool Mult25(const std::vector< litfloat > &a, const std::vector< litfloat > &b, std::vector< litfloat > &c)
bool Mult36(const std::vector< litfloat > &a, const std::vector< litfloat > &b, std::vector< litfloat > &c)
bool Mult25On5(const std::vector< litfloat > &a, const std::vector< litfloat > &b, std::vector< litfloat > &c)
bool Mult15On25(const std::vector< litfloat > &a, const std::vector< litfloat > &b, std::vector< litfloat > &c)
bool InvSym15(std::vector< litfloat > &a)