library: libMatrix #include "TVectorF.h" |
TVectorF
class description - source file - inheritance tree (.pdf)
protected:
void Allocate(Int_t nrows, Int_t row_lwb = 0, Int_t init = 0)
void Delete_m(Int_t size, Float_t*&)
Int_t Memcpy_m(Float_t* newp, const Float_t* oldp, Int_t copySize, Int_t newSize, Int_t oldSize)
Float_t* New_m(Int_t size)
public:
TVectorF()
TVectorF(Int_t n)
TVectorF(Int_t lwb, Int_t upb)
TVectorF(Int_t n, const Float_t* elements)
TVectorF(Int_t lwb, Int_t upb, const Float_t* elements)
TVectorF(const TVectorF& another)
TVectorF(const TVectorD& another)
TVectorF(const TMatrixFRow_const& mr)
TVectorF(const TMatrixFColumn_const& mc)
TVectorF(const TMatrixFDiag_const& md)
TVectorF GetSub(Int_t row_lwb, Int_t row_upb, Option_t* option = "S") const
virtual ~TVectorF()
TVectorF& Abs()
void AddSomeConstant(Float_t val, const TVectorF& select)
TVectorF& Apply(const TElementActionF& action)
TVectorF& Apply(const TElementPosActionF& action)
static TClass* Class()
virtual void Clear(Option_t* = "")
virtual void Draw(Option_t* option = "")
Int_t GetLwb() const
Float_t* GetMatrixArray()
const Float_t* GetMatrixArray() const
Int_t GetNoElements() const
Int_t GetNrows() const
TVectorF& GetSub(Int_t row_lwb, Int_t row_upb, TVectorF& target, Option_t* option = "S") const
Int_t GetUpb() const
void Invalidate()
TVectorF& Invert()
virtual TClass* IsA() const
Bool_t IsOwner() const
Bool_t IsValid() const
void MakeValid()
Bool_t MatchesNonZeroPattern(const TVectorF& select)
Float_t Max() const
Float_t Min() const
Int_t NonZeros() const
Float_t Norm1() const
Float_t Norm2Sqr() const
Float_t NormInf() const
Bool_t operator!=(Float_t val) const
const Float_t& operator()(Int_t ind) const
Float_t& operator()(Int_t index)
TVectorF& operator*=(Float_t val)
TVectorF& operator*=(const TMatrixF& a)
TVectorF& operator*=(const TMatrixFSym& a)
TVectorF& operator+=(Float_t val)
TVectorF& operator+=(const TVectorF& source)
TVectorF& operator-=(Float_t val)
TVectorF& operator-=(const TVectorF& source)
Bool_t operator<(Float_t val) const
Bool_t operator<=(Float_t val) const
TVectorF& operator=(const TVectorF& source)
TVectorF& operator=(const TVectorD& source)
TVectorF& operator=(const TMatrixFRow_const& mr)
TVectorF& operator=(const TMatrixFColumn_const& mc)
TVectorF& operator=(const TMatrixFDiag_const& md)
TVectorF& operator=(Float_t val)
Bool_t operator==(Float_t val) const
Bool_t operator>(Float_t val) const
Bool_t operator>=(Float_t val) const
const Float_t& operator[](Int_t index) const
Float_t& operator[](Int_t index)
virtual void Print(Option_t* option = "") const
void Randomize(Float_t alpha, Float_t beta, Double_t& seed)
TVectorF& ResizeTo(Int_t lwb, Int_t upb)
TVectorF& ResizeTo(Int_t n)
TVectorF& ResizeTo(const TVectorF& v)
TVectorF& SelectNonZeros(const TVectorF& select)
void SetElements(const Float_t* elements)
TVectorF& SetSub(Int_t row_lwb, const TVectorF& source)
TVectorF& Shift(Int_t row_shift)
virtual void ShowMembers(TMemberInspector& insp, char* parent)
Bool_t SomePositive(const TVectorF& select)
TVectorF& Sqr()
TVectorF& Sqrt()
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
Float_t Sum() const
TVectorF& Use(Int_t n, Float_t* data)
TVectorF& Use(Int_t lwb, Int_t upb, Float_t* data)
TVectorF& Use(TVectorF& v)
TVectorF& Zero()
protected:
Int_t fNrows number of rows
Int_t fRowLwb lower bound of the row index
Float_t* fElements [fNrows] elements themselves
Float_t fDataStack[5] ! data container
Bool_t fIsOwner !default kTRUE, when Use array kFALSE
public:
static const enum TVectorF:: kSizeMax
static const enum TVectorF:: kWorkMax
TVectorF
Implementation of Vectors in the linear algebra package
Unless otherwise specified, vector indices always start with 0,
spanning up to the specified limit-1.
For (n) vectors where n <= kSizeMax (5 currently) storage space is
available on the stack, thus avoiding expensive allocation/
deallocation of heap space . However, this introduces of course
kSizeMax overhead for each vector object . If this is an issue
recompile with a new appropriate value (>=0) for kSizeMax
Another way to assign and store vector data is through Use
see for instance stress_linalg.cxx file .
Note that Constructors/assignments exists for all different matrix
views
For usage examples see $ROOTSYS/test/stress_linalg.cxx
void Delete_m(Int_t size,Float_t *&m)
Float_t* New_m(Int_t size)
Int_t Memcpy_m(Float_t *newp,const Float_t *oldp,Int_t copySize,
Int_t newSize,Int_t oldSize)
void Allocate(Int_t nrows,Int_t row_lwb,Int_t init)
Allocate new vector. Arguments are number of rows and row
lowerbound (0 default).
TVectorF(Int_t n)
TVectorF(Int_t lwb,Int_t upb)
TVectorF(Int_t n,const Float_t *elements)
TVectorF(Int_t lwb,Int_t upb,const Float_t *elements)
TVectorF(const TVectorF &another) : TObject(another)
TVectorF(const TVectorD &another) : TObject(another)
TVectorF(const TMatrixFRow_const &mr) : TObject()
TVectorF(const TMatrixFColumn_const &mc) : TObject()
TVectorF(const TMatrixFDiag_const &md) : TObject()
TVectorF(Int_t lwb,Int_t upb,Float_t va_(iv1), ...)
Make a vector and assign initial values. Argument list should contain
Float_t values to assign to vector elements. The list must be
terminated by the string "END". Example:
TVectorF foo(1,3,0.0,1.0,1.5,"END");
TVectorF& ResizeTo(Int_t lwb,Int_t upb)
Resize the vector to [lwb:upb] .
New dynamic elemenst are created, the overlapping part of the old ones are
copied to the new structures, then the old elements are deleleted.
TVectorF& Use(Int_t lwb,Int_t upb,Float_t *data)
TVectorF& GetSub(Int_t row_lwb,Int_t row_upb,TVectorF &target,Option_t *option) const
Get subvector [row_lwb..row_upb]; The indexing range of the
returned vector depends on the argument option:
option == "S" : return [0..row_upb-row_lwb+1] (default)
else : return [row_lwb..row_upb]
TVectorF& SetSub(Int_t row_lwb,const TVectorF &source)
Insert vector source starting at [row_lwb], thereby overwriting the part
[row_lwb..row_lwb+nrows_source];
TVectorF& Zero()
TVectorF& Abs()
Take an absolute value of a vector, i.e. apply Abs() to each element.
TVectorF& Sqr()
Square each element of the vector.
TVectorF& Sqrt()
Take square root of all elements.
TVectorF& Invert()
v[i] = 1/v[i]
TVectorF& SelectNonZeros(const TVectorF &select)
Float_t Norm1() const
Compute the 1-norm of the vector SUM{ |v[i]| }.
Float_t Norm2Sqr() const
Compute the square of the 2-norm SUM{ v[i]^2 }.
Float_t NormInf() const
Compute the infinity-norm of the vector MAX{ |v[i]| }.
Int_t NonZeros() const
Compute the number of elements != 0.0
Float_t Sum() const
Compute sum of elements
Float_t Min() const
return minimum vector element value
Float_t Max() const
return maximum vector element value
Bool_t MatchesNonZeroPattern(const TVectorF &select)
Bool_t SomePositive(const TVectorF &select)
void AddSomeConstant(Float_t val,const TVectorF &select)
void Randomize(Float_t alpha,Float_t beta,Double_t &seed)
randomize vector elements value
TVectorF& Apply(const TElementActionF &action)
Apply action to each element of the vector.
TVectorF& Apply(const TElementPosActionF &action)
Apply action to each element of the vector. In action the location
of the current element is known.
void Draw(Option_t *option)
Draw this vector using an intermediate histogram
The histogram is named "TVectorF" by default and no title
void Print(Option_t *flag) const
Print the vector as a list of elements.
void Streamer(TBuffer &R__b)
Stream an object of class TVectorF.
Inline Functions
void ~TVectorF()
Int_t GetLwb() const
Int_t GetUpb() const
Int_t GetNrows() const
Int_t GetNoElements() const
Float_t* GetMatrixArray()
const Float_t* GetMatrixArray() const
void Invalidate()
void MakeValid()
Bool_t IsValid() const
Bool_t IsOwner() const
void SetElements(const Float_t* elements)
TVectorF& Shift(Int_t row_shift)
TVectorF& ResizeTo(Int_t n)
TVectorF& ResizeTo(const TVectorF& v)
TVectorF& Use(Int_t lwb, Int_t upb, Float_t* data)
TVectorF& Use(TVectorF& v)
TVectorF GetSub(Int_t row_lwb, Int_t row_upb, Option_t* option = "S") const
const Float_t& operator()(Int_t ind) const
Float_t& operator()(Int_t index)
const Float_t& operator[](Int_t index) const
Float_t& operator[](Int_t index)
TVectorF& operator=(const TVectorF& source)
TVectorF& operator=(const TVectorD& source)
TVectorF& operator=(const TMatrixFRow_const& mr)
TVectorF& operator=(const TMatrixFColumn_const& mc)
TVectorF& operator=(const TMatrixFDiag_const& md)
TVectorF& operator=(Float_t val)
TVectorF& operator+=(Float_t val)
TVectorF& operator-=(Float_t val)
TVectorF& operator*=(Float_t val)
TVectorF& operator+=(const TVectorF& source)
TVectorF& operator-=(const TVectorF& source)
TVectorF& operator*=(const TMatrixF& a)
TVectorF& operator*=(const TMatrixFSym& a)
Bool_t operator==(Float_t val) const
Bool_t operator!=(Float_t val) const
Bool_t operator<(Float_t val) const
Bool_t operator<=(Float_t val) const
Bool_t operator>(Float_t val) const
Bool_t operator>=(Float_t val) const
void Clear(Option_t* = "")
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void StreamerNVirtual(TBuffer& b)
Last update: root/matrix:$Name: $:$Id: TVectorF.cxx,v 1.30 2005/12/09 22:38:38 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.