Ginkgo: gko::Combination< ValueType > Class Template 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::Combination< ValueType > Class Template Reference
Linear Operators

The Combination class can be used to construct a linear combination of multiple linear operators c1 * op1 + c2 * op2 + ... + ck * opk. More...

`#include <ginkgo/core/base/combination.hpp>`

Inheritance diagram for gko::Combination< ValueType >:
[legend]
Collaboration diagram for gko::Combination< ValueType >:
[legend]

## Public Types
using | value_type = ValueType
using | transposed_type = Combination<ValueType>
Public Types inherited from gko::EnablePolymorphicAssignment< Combination< default_precision > >
using | result_type

## Public Member Functions
const std::vector< std::shared_ptr< const LinOp > > & | get_coefficients () const noexcept
| Returns a list of coefficients of the combination.
const std::vector< std::shared_ptr< const LinOp > > & | get_operators () const noexcept
| Returns a list of operators of the combination.
std::unique_ptr< LinOp > | transpose () const override
| Returns a LinOp representing the transpose of the Transposable object.
std::unique_ptr< LinOp > | conj_transpose () const override
| Returns a LinOp representing the conjugate transpose of the Transposable object.
Combination & | operator= (const Combination &)
| Copy-assigns a Combination.
Combination & | operator= (Combination &&)
| Move-assigns a Combination.
| Combination (const Combination &)
| Copy-constructs a Combination.
| Combination (Combination &&)
| Move-constructs a Combination.
Public Member Functions inherited from gko::EnableLinOp< Combination< default_precision > >
const Combination< default_precision > * | apply (ptr_param< const LinOp > b, ptr_param< LinOp > x) const
Public Member Functions inherited from gko::EnablePolymorphicAssignment< Combination< default_precision > >
void | convert_to (result_type *result) const override
void | move_to (result_type *result) override

## Friends
class | EnablePolymorphicObject< Combination, LinOp >
class | EnableCreateMethod< Combination >

## Additional Inherited Members
Static Public Member Functions inherited from gko::EnableCreateMethod< Combination< default_precision > >
static std::unique_ptr< Combination< default_precision > > | create (Args &&... args)

## Detailed Description

template<typename ValueType = default_precision>
class gko::Combination< ValueType >

The Combination class can be used to construct a linear combination of multiple linear operators c1 * op1 + c2 * op2 + ... + ck * opk.

Combination ensures that all LinOps passed to its constructor use the same executor, and if not, copies the operators to the executor of the first operator.

Template Parameters

  ValueType | precision of input and result vectors

## Constructor & Destructor Documentation

## ◆ Combination() [1/2]

template<typename ValueType = default_precision>

gko::Combination< ValueType >::Combination | ( | const Combination< ValueType > & |  | ) |

Copy-constructs a Combination.

This inherits the executor of the input Combination and all of its operators with shared ownership.

## ◆ Combination() [2/2]

template<typename ValueType = default_precision>

gko::Combination< ValueType >::Combination | ( | Combination< ValueType > && |  | ) |

Move-constructs a Combination.

This inherits the executor of the input Combination and all of its operators. The moved-from object is empty (0x0 LinOp without operators) afterwards.

## Member Function Documentation

## ◆ conj_transpose()

template<typename ValueType = default_precision>

std::unique_ptr< LinOp > gko::Combination< ValueType >::conj_transpose | ( |  | ) | const
| overridevirtual

Returns a LinOp representing the conjugate transpose of the Transposable object.

Returns
  a pointer to the new conjugate transposed object

Implements gko::Transposable.

## ◆ get_coefficients()

template<typename ValueType = default_precision>

const std::vector< std::shared_ptr< const LinOp > > & gko::Combination< ValueType >::get_coefficients | ( |  | ) | const
| inlinenoexcept

Returns a list of coefficients of the combination.

Returns
  a list of coefficients

## ◆ get_operators()

template<typename ValueType = default_precision>

const std::vector< std::shared_ptr< const LinOp > > & gko::Combination< ValueType >::get_operators | ( |  | ) | const
| inlinenoexcept

Returns a list of operators of the combination.

Returns
  a list of operators

## ◆ operator=() [1/2]

template<typename ValueType = default_precision>

Combination & gko::Combination< ValueType >::operator= | ( | Combination< ValueType > && |  | ) |

Move-assigns a Combination.

The executor is not modified, and the wrapped LinOps are only being cloned if they are on a different executor, otherwise they share ownership. The moved-from object is empty (0x0 LinOp without operators) afterwards.

## ◆ operator=() [2/2]

template<typename ValueType = default_precision>

Combination & gko::Combination< ValueType >::operator= | ( | const Combination< ValueType > & |  | ) |

Copy-assigns a Combination.

The executor is not modified, and the wrapped LinOps are only being cloned if they are on a different executor.

## ◆ transpose()

template<typename ValueType = default_precision>

std::unique_ptr< LinOp > gko::Combination< ValueType >::transpose | ( |  | ) | const
| overridevirtual

Returns a LinOp representing the transpose of the Transposable object.

Returns
  a pointer to the new transposed object

Implements gko::Transposable.

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

- ginkgo/core/base/combination.hpp