Ginkgo  Generated from pipelines/1478841010 branch based on develop. Ginkgo version 1.9.0
A numerical linear algebra library targeting many-core architectures
Public Member Functions | List of all members
gko::Transposable Class Referenceabstract

Linear operators which support transposition should implement the Transposable interface. More...

#include <ginkgo/core/base/lin_op.hpp>

Inheritance diagram for gko::Transposable:
[legend]

Public Member Functions

virtual std::unique_ptr< LinOptranspose () const =0
 Returns a LinOp representing the transpose of the Transposable object. More...
 
virtual std::unique_ptr< LinOpconj_transpose () const =0
 Returns a LinOp representing the conjugate transpose of the Transposable object. More...
 

Detailed Description

Linear operators which support transposition should implement the Transposable interface.

It provides two functionalities, the normal transpose and the conjugate transpose.

The normal transpose returns the transpose of the linear operator without changing any of its elements representing the operation, $B = A^{T}$.

The conjugate transpose returns the conjugate of each of the elements and additionally transposes the linear operator representing the operation, $B = A^{H}$.

Example: Transposing a Csr matrix:

{c++}
//Transposing an object of LinOp type.
//The object you want to transpose.
auto op = matrix::Csr::create(exec);
//Transpose the object by first converting it to a transposable type.
auto trans = op->transpose();

Member Function Documentation

◆ conj_transpose()

virtual std::unique_ptr<LinOp> gko::Transposable::conj_transpose ( ) const
pure virtual

◆ transpose()

virtual std::unique_ptr<LinOp> gko::Transposable::transpose ( ) const
pure virtual

The documentation for this class was generated from the following file:
gko::matrix::Csr::create
static std::unique_ptr< Csr > create(std::shared_ptr< const Executor > exec, std::shared_ptr< strategy_type > strategy)
Creates an uninitialized CSR matrix of the specified size.