imbalance_limit Class Reference

imbalance_limit Class Reference#

Reference API: gko::matrix::Hybrid< ValueType, IndexType >::imbalance_limit Class Reference
Reference API
gko::matrix::Hybrid< ValueType, IndexType >::imbalance_limit Class Reference

#include <ginkgo/core/matrix/hybrid.hpp>

Inheritance diagram for gko::matrix::Hybrid< ValueType, IndexType >::imbalance_limit:
[legend]

Public Member Functions

 imbalance_limit (double percent=0.8)
 
size_type compute_ell_num_stored_elements_per_row (array< size_type > *row_nnz) const override
 
auto get_percentage () const
 
- Public Member Functions inherited from gko::matrix::Hybrid< ValueType, IndexType >::strategy_type
 strategy_type ()
 
void compute_hybrid_config (const array< size_type > &row_nnz, size_type *ell_num_stored_elements_per_row, size_type *coo_nnz)
 
size_type get_ell_num_stored_elements_per_row () const noexcept
 
size_type get_coo_nnz () const noexcept
 

Additional Inherited Members

- Protected Member Functions inherited from gko::matrix::Hybrid< ValueType, IndexType >::strategy_type
size_type compute_coo_nnz (const array< size_type > &row_nnz) const
 

Detailed Description

template<typename ValueType = default_precision, typename IndexType = int32>
class gko::matrix::Hybrid< ValueType, IndexType >::imbalance_limit

imbalance_limit is a strategy_type which decides the number of stored elements per row of the ell part according to the percent. It sorts the number of nonzeros of each row and takes the value at the position floor(percent * num_row) as the number of stored elements per row of the ell part. Thus, at least percent rows of all are in the ell part.

Constructor & Destructor Documentation

◆ imbalance_limit()

template<typename ValueType = default_precision, typename IndexType = int32>
gko::matrix::Hybrid< ValueType, IndexType >::imbalance_limit::imbalance_limit ( double  percent = 0.8)
inlineexplicit

Creates a imbalance_limit strategy.

Parameters
percentthe row_nnz[floor(num_rows*percent)] is the number of stored elements per row of the ell part

Member Function Documentation

◆ compute_ell_num_stored_elements_per_row()

template<typename ValueType = default_precision, typename IndexType = int32>
size_type gko::matrix::Hybrid< ValueType, IndexType >::imbalance_limit::compute_ell_num_stored_elements_per_row ( array< size_type > *  row_nnz) const
inlineoverridevirtual

Computes the number of stored elements per row of the ell part.

Parameters
row_nnzthe number of nonzeros of each row
Returns
the number of stored elements per row of the ell part

Implements gko::matrix::Hybrid< ValueType, IndexType >::strategy_type.

References gko::array< ValueType >::get_data(), and gko::array< ValueType >::get_size().

Referenced by gko::matrix::Hybrid< ValueType, IndexType >::imbalance_bounded_limit::compute_ell_num_stored_elements_per_row(), and gko::matrix::Hybrid< ValueType, IndexType >::minimal_storage_limit::compute_ell_num_stored_elements_per_row().

◆ get_percentage()

template<typename ValueType = default_precision, typename IndexType = int32>
auto gko::matrix::Hybrid< ValueType, IndexType >::imbalance_limit::get_percentage ( ) const
inline

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