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::batch::BatchLinOpFactory Class Reference

A BatchLinOpFactory represents a higher order mapping which transforms one batch linear operator into another. More...

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

Inheritance diagram for gko::batch::BatchLinOpFactory:
[legend]
Collaboration diagram for gko::batch::BatchLinOpFactory:
[legend]

Public Member Functions

std::unique_ptr< BatchLinOpgenerate (std::shared_ptr< const BatchLinOp > input) const

Detailed Description

A BatchLinOpFactory represents a higher order mapping which transforms one batch linear operator into another.

In a similar fashion to LinOps, BatchLinOps are also "generated" from the BatchLinOpFactory. A function of this class is to provide a generate method, which internally cals the generate_impl(), which the concrete BatchLinOps have to implement.

Example: using BatchCG in Ginkgo

// Suppose A is a batch matrix, batch_b, a batch rhs vector, and batch_x, an
// initial guess
// Create a BatchCG which runs for at most 1000 iterations, and stops after
// reducing the residual norm by 6 orders of magnitude
auto batch_cg_factory = solver::BatchCg<>::build()
.with_max_iters(1000)
.with_rel_residual_goal(1e-6)
.on(cuda);
// create a batch linear operator which represents the solver
auto batch_cg = batch_cg_factory->generate(A);
// solve the system
batch_cg->apply(batch_b, batch_x);

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