Public Types | Public Member Functions | Public Attributes | Protected Member Functions | List of all members
actions::Scale< T > Class Template Reference
Inheritance diagram for actions::Scale< T >:
actions::BaseAction< T >

Public Types

using Base_t = BaseAction< T >
 
typedef TestManagerClass< T > TestClass_t
 
typedef TestClass_t::Data_t Data_t
 type stored More...
 
typedef TestClass_t::Vector_t Vector_t
 type of STL vector More...
 
typedef TestClass_t::SparseVector_t SparseVector_t
 type of sparse vector More...
 
- Public Types inherited from actions::BaseAction< T >
using This_t = BaseAction< T >
 
typedef TestManagerClass< T > TestClass_t
 
typedef TestClass_t::Data_t Data_t
 type stored More...
 
typedef TestClass_t::Vector_t Vector_t
 type of STL vector More...
 
typedef TestClass_t::SparseVector_t SparseVector_t
 type of sparse vector More...
 

Public Member Functions

 Scale (size_t pos, Data_t factor)
 
- Public Member Functions inherited from actions::BaseAction< T >
 BaseAction ()
 
 BaseAction (int exp_err)
 
virtual ~BaseAction ()
 
This_tset_expected_errors (int exp_err)
 
void describe (TestClass_t &tc, std::ostream &out) const
 Print a description of this action into the specified steam. More...
 
void describe (TestClass_t &tc) const
 Print a description of this action in the test class stream. More...
 
std::string description (TestClass_t &tc) const
 Returns a string with a description of this action. More...
 
void operator() (Vector_t &v) const
 Action performed on a STL vector. More...
 
void operator() (SparseVector_t &v) const
 Action performed on a sparse vector. More...
 

Public Attributes

size_t position
 
Data_t factor
 
- Public Attributes inherited from actions::BaseAction< T >
int expected_errors {0}
 number of errors expected for this action More...
 

Protected Member Functions

virtual void actionOnVector (Vector_t &v) const override
 
virtual void actionOnSparseVector (SparseVector_t &v) const override
 
virtual void doDescribe (TestClass_t &, std::ostream &out) const override
 

Additional Inherited Members

- Protected Types inherited from actions::BaseAction< T >
using v_citer_t = typename Vector_t::const_iterator
 
- Static Protected Member Functions inherited from actions::BaseAction< T >
template<typename ITER >
static ITER skipRange (ITER start, ITER const end)
 
template<typename ITER >
static ITER skipVoid (ITER start, ITER const end)
 
template<typename ITER >
static ITER rangeStart (ITER const begin, ITER last)
 
template<typename ITER >
static ITER voidStart (ITER const begin, ITER last)
 
template<typename Vector >
static auto findRangeBorders (Vector &v, std::size_t pos)
 
template<typename ITER >
static ITER findRangeStart (Vector_t const &v, std::size_t i, ITER start)
 Returns iterator to the first element of the i-th range after start. More...
 
template<typename ITER >
static ITER findRangeStart (Vector_t const &v, std::size_t i)
 
template<typename ITER >
static ITER findVoidStart (Vector_t const &v, std::size_t i, ITER start)
 
static bool isVoid (Data_t value)
 

Detailed Description

template<typename T>
class actions::Scale< T >

Definition at line 772 of file sparse_vector_test.cc.

Member Typedef Documentation

template<typename T >
using actions::Scale< T >::Base_t = BaseAction<T>

Definition at line 774 of file sparse_vector_test.cc.

template<typename T >
typedef TestClass_t::Data_t actions::BaseAction< T >::Data_t

type stored

Definition at line 278 of file sparse_vector_test.cc.

template<typename T >
typedef TestClass_t::SparseVector_t actions::BaseAction< T >::SparseVector_t

type of sparse vector

Definition at line 280 of file sparse_vector_test.cc.

template<typename T >
typedef TestManagerClass<T> actions::BaseAction< T >::TestClass_t

Definition at line 277 of file sparse_vector_test.cc.

template<typename T >
typedef TestClass_t::Vector_t actions::BaseAction< T >::Vector_t

type of STL vector

Definition at line 279 of file sparse_vector_test.cc.

Constructor & Destructor Documentation

template<typename T >
actions::Scale< T >::Scale ( size_t  pos,
Data_t  factor 
)
inline

Definition at line 783 of file sparse_vector_test.cc.

Member Function Documentation

template<typename T >
virtual void actions::Scale< T >::actionOnSparseVector ( SparseVector_t v) const
inlineoverrideprotectedvirtual

Reimplemented from actions::BaseAction< T >.

Definition at line 791 of file sparse_vector_test.cc.

792  {
793  auto i = v.find_range_number(position);
794  if (i >= v.n_ranges()) return;
795  for (auto& value: v.range_data(i)) value *= factor;
796  }
template<typename T >
virtual void actions::Scale< T >::actionOnVector ( Vector_t v) const
inlineoverrideprotectedvirtual

Reimplemented from actions::BaseAction< T >.

Definition at line 786 of file sparse_vector_test.cc.

787  {
788  auto&& [rstart, rend] = Base_t::findRangeBorders(v, position);
789  while (rstart < rend) *(rstart++) *= factor;
790  }
static auto findRangeBorders(Vector &v, std::size_t pos)
template<typename T >
virtual void actions::Scale< T >::doDescribe ( TestClass_t ,
std::ostream &  out 
) const
inlineoverrideprotectedvirtual

Reimplemented from actions::BaseAction< T >.

Definition at line 798 of file sparse_vector_test.cc.

799  {
800  out << "scale data by a factor " << factor
801  << " starting at position " << position;
802  } // describe()

Member Data Documentation

template<typename T >
Data_t actions::Scale< T >::factor

Definition at line 781 of file sparse_vector_test.cc.

template<typename T >
size_t actions::Scale< T >::position

Definition at line 780 of file sparse_vector_test.cc.


The documentation for this class was generated from the following file: