value_type * get_scaling_factors () noexcept
Returns a pointer to the scaling factors.
const value_type * get_const_scaling_factors () const noexcept
Returns a pointer to the scaling factors.
index_type * get_permutation () noexcept
Returns a pointer to the permutation indices.
const index_type * get_const_permutation () const noexcept
Returns a pointer to the permutation indices.
std::unique_ptr< ScaledPermutation > compute_inverse () const
Returns the inverse of this operator as a scaled permutation.
std::unique_ptr< ScaledPermutation > compose (ptr_param < const ScaledPermutation > other ) const
Composes this scaled permutation with another scaled permutation.
void write (gko::matrix_data < value_type, index_type > &data) const override
Writes a matrix to a matrix_data structure.
const ConcreteLinOp * apply (ptr_param < const LinOp > b, ptr_param < LinOp > x) const
ConcreteLinOp * apply (ptr_param < const LinOp > b, ptr_param < LinOp > x)
const ConcreteLinOp * apply (ptr_param < const LinOp > alpha, ptr_param < const LinOp > b, ptr_param < const LinOp > beta, ptr_param < LinOp > x) const
ConcreteLinOp * apply (ptr_param < const LinOp > alpha, ptr_param < const LinOp > b, ptr_param < const LinOp > beta, ptr_param < LinOp > x)
std::unique_ptr< AbstractObject > create_default (std::shared_ptr< const Executor > exec) const
std::unique_ptr< AbstractObject > create_default () const
std::unique_ptr< AbstractObject > clone (std::shared_ptr< const Executor > exec) const
std::unique_ptr< AbstractObject > clone () const
AbstractObject * copy_from (const PolymorphicObject *other )
template<typename Derived >
std::enable_if_t< std::is_base_of< PolymorphicObject , std::decay_t< Derived > >::value, AbstractObject > * copy_from (std::unique_ptr< Derived > &&other )
template<typename Derived >
std::enable_if_t< std::is_base_of< PolymorphicObject , std::decay_t< Derived > >::value, AbstractObject > * copy_from (const std::unique_ptr< Derived > &other )
AbstractObject * copy_from (const std::shared_ptr< const PolymorphicObject > &other )
AbstractObject * move_from (ptr_param < PolymorphicObject > other )
AbstractObject * clear ()
PolymorphicObject & operator= (const PolymorphicObject &)
std::unique_ptr< PolymorphicObject > create_default (std::shared_ptr< const Executor > exec) const
Creates a new "default" object of the same dynamic type as this object.
std::unique_ptr< PolymorphicObject > create_default () const
Creates a new "default" object of the same dynamic type as this object.
std::unique_ptr< PolymorphicObject > clone (std::shared_ptr< const Executor > exec) const
Creates a clone of the object.
std::unique_ptr< PolymorphicObject > clone () const
Creates a clone of the object.
PolymorphicObject * copy_from (const PolymorphicObject *other )
Copies another object into this object.
template<typename Derived , typename Deleter >
std::enable_if_t< std::is_base_of< PolymorphicObject , std::decay_t< Derived > >::value, PolymorphicObject > * copy_from (std::unique_ptr< Derived , Deleter > &&other )
Moves another object into this object.
template<typename Derived , typename Deleter >
std::enable_if_t< std::is_base_of< PolymorphicObject , std::decay_t< Derived > >::value, PolymorphicObject > * copy_from (const std::unique_ptr< Derived , Deleter > &other )
Copies another object into this object.
PolymorphicObject * copy_from (const std::shared_ptr< const PolymorphicObject > &other )
Copies another object into this object.
PolymorphicObject * move_from (ptr_param < PolymorphicObject > other )
Moves another object into this object.
PolymorphicObject * clear ()
Transforms the object into its default state.
std::shared_ptr< const Executor > get_executor () const noexcept
Returns the Executor of the object.
void add_logger (std::shared_ptr< const Logger > logger) override
Adds a new logger to the list of subscribed loggers.
void remove_logger (const Logger *logger) override
Removes a logger from the list of subscribed loggers.
void remove_logger (ptr_param < const Logger > logger)
const std::vector< std::shared_ptr< const Logger > > & get_loggers () const override
Returns the vector containing all loggers registered at this object.
void clear_loggers () override
Remove all loggers registered at this object.
void remove_logger (ptr_param < const Logger > logger )
void convert_to (result_type *result) const override
Converts the implementer to an object of type result_type.
void move_to (result_type *result) override
Converts the implementer to an object of type result_type by moving data from this object.
virtual void convert_to (result_type *result ) const =0
Converts the implementer to an object of type result_type.
void convert_to (ptr_param < result_type > result ) const
virtual void move_to (result_type *result )=0
Converts the implementer to an object of type result_type by moving data from this object.
void move_to (ptr_param < result_type > result )
template<
typename ValueType = default_precision,
typename IndexType = int32>
class gko::matrix::ScaledPermutation< ValueType, IndexType >
ScaledPermutation is a matrix combining a permutation with scaling factors.
It is a combination of Diagonal and Permutation , and can be read as , i.e. the scaling gets applied before the permutation.
Template Parameters
IndexType index type of permutation indices
ValueType value type of the scaling factors