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

| Ginkgo Generated from branch based on main. Ginkgo version 1.11.0 A numerical linear algebra library targeting many-core architectures

Loading...
Searching...
No Matches
gko::matrix::Hybrid< ValueType, IndexType >::imbalance_limit Class Reference

imbalance_limit is a strategy_type which decides the number of stored elements per row of the ell part according to the percent. More...

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

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

## Public Member Functions
| imbalance_limit (double percent=0.8)
| Creates a imbalance_limit strategy.
size_type | compute_ell_num_stored_elements_per_row (array< size_type > *row_nnz) const override
| Computes the number of stored elements per row of the ell part.
auto | get_percentage () const
| Get the percent setting.
Public Member Functions inherited from gko::matrix::Hybrid< ValueType, IndexType >::strategy_type
| strategy_type ()
| Creates a strategy_type.
void | compute_hybrid_config (const array< size_type > &row_nnz, size_type *ell_num_stored_elements_per_row, size_type *coo_nnz)
| Computes the config of the Hybrid matrix (ell_num_stored_elements_per_row and coo_nnz).
size_type | get_ell_num_stored_elements_per_row () const noexcept
| Returns the number of stored elements per row of the ell part.
size_type | get_coo_nnz () const noexcept
| Returns the number of nonzeros of the coo part.

## 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

  percent | the 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_nnz | the 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().

## ◆ get_percentage()

template<typename ValueType = default_precision, typename IndexType = int32>

auto gko::matrix::Hybrid< ValueType, IndexType >::imbalance_limit::get_percentage | ( |  | ) | const
| inline

Get the percent setting.

Returns
  percent

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

- ginkgo/core/matrix/hybrid.hpp