7 #ifndef __IPCOMPOUNDVECTOR_HPP__ 8 #define __IPCOMPOUNDVECTOR_HPP__ 18 class CompoundVectorSpace;
68 inline Index NComps()
const;
121 virtual void CopyImpl(
126 virtual void ScalImpl(
130 virtual void AxpyImpl(
139 virtual Number Nrm2Impl()
const;
141 virtual Number AsumImpl()
const;
143 virtual Number AmaxImpl()
const;
145 virtual void SetImpl(
149 virtual void ElementWiseDivideImpl(
153 virtual void ElementWiseMultiplyImpl(
157 virtual void ElementWiseSelectImpl(
161 virtual void ElementWiseMaxImpl(
165 virtual void ElementWiseMinImpl(
169 virtual void ElementWiseReciprocalImpl();
171 virtual void ElementWiseAbsImpl();
173 virtual void ElementWiseSqrtImpl();
175 virtual void ElementWiseSgnImpl();
177 virtual void AddScalarImpl(
181 virtual Number MaxImpl()
const;
183 virtual Number MinImpl()
const;
185 virtual Number SumImpl()
const;
187 virtual Number SumLogsImpl()
const;
191 void AddTwoVectorsImpl(
205 void AddVectorQuotientImpl(
214 virtual bool HasValidNumbersImpl()
const;
217 virtual void PrintImpl(
222 const std::string& name,
224 const std::string& prefix
265 inline const Vector* ConstComp(
300 virtual void SetCompSpace(
313 return ncomp_spaces_;
318 bool create_new =
true 326 return MakeNewCompoundVector();
bool IsValid(const SmartPtr< U > &smart_ptr)
virtual ~CompoundVector()
Default destructor.
const Index ncomp_spaces_
Number of components.
std::vector< SmartPtr< Vector > > comps_
Components of the compound vector.
SmartPtr< Vector > GetCompNonConst(Index i)
Return a particular component (non-const version).
virtual CompoundVector * MakeNewCompoundVector(bool create_new=true) const
Method for creating a new vector of this specific type.
EJournalLevel
Print Level Enum.
ipindex Index
Type of all indices of vectors, matrices etc.
This file contains a base class for all exceptions and a set of macros to help with exceptions...
Template class for Smart Pointers.
VectorSpace base class, corresponding to the Vector base class.
bool IsCompNull(Index i) const
Check if a particular component is null or not.
U * GetRawPtr(const SmartPtr< U > &smart_ptr)
SmartPtr< const Vector > GetComp(Index i) const
Return a particular component (const version)
~CompoundVectorSpace()
Destructor.
ipnumber Number
Type of all numbers.
bool IsCompConst(Index i) const
Check if a particular component is const or not.
const CompoundVectorSpace * owner_space_
Index NComps() const
Number of components of this compound vector.
Class responsible for all message output.
std::vector< SmartPtr< const VectorSpace > > comp_spaces_
std::vector of vector spaces for the components
Index NCompSpaces() const
Accessor method to obtain the number of components.
virtual Vector * MakeNew() const
Pure virtual method for creating a new Vector of the corresponding type.
This vectors space is the vector space for CompoundVector.
EJournalCategory
Category Selection Enum.
const Vector * ConstComp(Index i) const
Class of Vectors consisting of other vectors.
std::vector< SmartPtr< const Vector > > const_comps_