16#ifndef ALICEO2_FWDALIGN_MATRIXSPARSE_H
17#define ALICEO2_FWDALIGN_MATRIXSPARSE_H
44 Int_t
GetSize()
const override {
return fNrows; }
45 virtual Int_t
GetNRows()
const {
return fNrows; }
46 virtual Int_t
GetNCols()
const {
return fNcols; }
48 void Clear(Option_t* option =
"")
override;
51 for (
int i = fNcols;
i--;) {
55 void Print(Option_t* option =
"")
const override;
64 Double_t
DiagElem(Int_t
r)
const override;
71 void MultiplyByVec(
const TVectorD& vecIn, TVectorD& vecOut)
const override;
73 void MultiplyByVec(
const Double_t* vecIn, Double_t* vecOut)
const override;
75 void AddToRow(Int_t
r, Double_t* valc, Int_t* indc, Int_t
n)
override;
87 MultiplyByVec((Double_t*)vecIn.GetMatrixArray(), (Double_t*)vecOut.GetMatrixArray());
Abstract class (from AliROOT) for square matrix used for millepede2 operation.
Sparse vector class (from AliROOT), used as row of the MatrixSparse class.
void Clear(Option_t *option="") override
MatrixSparse & operator=(const MatrixSparse &src)
void SetToZero(Int_t row, Int_t col)
set existing element to 0
Int_t GetSize() const override
void AddToRow(Int_t r, Double_t *valc, Int_t *indc, Int_t n) override
void MultiplyByVec(const TVectorD &vecIn, TVectorD &vecOut) const override
fill vecOut by matrix * vecIn (vector should be of the same size as the matrix)
void SortIndices(Bool_t valuesToo=kFALSE)
sort columns in increasing order. Used to fix the matrix after ILUk decompostion
void Print(Option_t *option="") const override
Float_t GetDensity() const override
get fraction of non-zero elements
VectorSparse * GetRow(Int_t ir) const
virtual Int_t GetNRows() const
Double_t DiagElem(Int_t r) const override
get diag elem
Double_t & operator()(Int_t row, Int_t col) override
ClassDefOverride(MatrixSparse, 0)
virtual Int_t GetNCols() const
VectorSparse * GetRowAdd(Int_t ir)
void Swap(int &r, int &c) const
Bool_t IsSymmetric() const override
Int_t GetLastIndex() const
Double_t FindIndex(Int_t ind) const
return an element with given index
Double_t & FindIndexAdd(Int_t ind)
increment an element with given index
Double_t GetLastElem() const
virtual void SetToZero(Int_t ind)
set element to 0 if it was already defined
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
o2::InteractionRecord ir(0, 0)