|
TDLS 0.4.0
Tiny Device-callable Linear Solvers
|
Compile-time configuration of the CooperativeLUpp solver family. More...
#include <limits>#include <tdls/core/macros.hpp>#include <tdls/core/structural_real.hpp>#include <tdls/solvers/options.hpp>Go to the source code of this file.
Classes | |
| struct | tdls::CooperativeLUppConfig< T > |
| Compile-time knobs of the CooperativeLUpp solvers, carrying the defaults. More... | |
Compile-time configuration of the CooperativeLUpp solver family.
Every knob is a member of the CooperativeLUppConfig aggregate. A constexpr instance of it is passed as the Config non-type template argument of the CooperativeLUpp solvers. The default-constructed value carries the defaults; a caller overrides individual knobs with designated initializers, in declaration order:
constexpr auto config = tdls::CooperativeLUppConfig<double>{.rows_per_thread = 3};
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 floating-point knobs are held as tdls::StructuralReal values: exact, built and read back implicitly, and admissible as a template argument 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).