TDLS 0.2.0
Tiny Device-callable Linear Solvers
Loading...
Searching...
No Matches
config.hpp File Reference

Compile-time configuration of the TiledLUpp solver family. More...

#include <limits>
#include <type_traits>
#include <tdls/core/macros.hpp>
#include <tdls/core/structural_real.hpp>
#include <tdls/solvers/options.hpp>
Include dependency graph for config.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  tdls::TiledLUppConfig< T >
 Compile-time knobs of the TiledLUpp solvers, carrying the tuned defaults. More...
 

Detailed Description

Compile-time configuration of the TiledLUpp solver family.

Author
Tristan Chenaille

Every knob is a member of the TiledLUppConfig aggregate. A constexpr instance of it is passed as the Config non-type template argument of the TiledLUpp solvers. The default-constructed value carries the tuned defaults; a caller overrides individual knobs with designated initializers, in declaration order:

constexpr auto config = tdls::TiledLUppConfig<double>{.tile_size = 4};

The aggregate is a structural type, as class-type non-type template parameters require: every member is public, and two configurations with equal members name the same solver instantiation. The two floating-point knobs are held as tdls::StructuralReal values: exact, built and read back implicitly, and admissible as template arguments on every compiler supporting class-type template parameters (a plain floating-point member would need P1907R1, absent from GCC 10 and from every nvcc before CUDA 13.0).