<T>LAPACK 0.1.1
C++ Template Linear Algebra PACKage
Loading...
Searching...
No Matches
tlapack::FrancisOpts Struct Reference

Options struct for multishift_qr(). More...

#include <FrancisOpts.hpp>

Inheritance diagram for tlapack::FrancisOpts:

Public Attributes

std::function< size_t(size_t, size_t)> deflation_window_recommender
 Function that returns the number of shifts to use for a given matrix size.
 
int n_aed = 0
 number of times AED was called
 
int n_shifts_total = 0
 total number of shifts used
 
int n_sweep = 0
 number of sweeps used
 
size_t nibble = 14
 Threshold of percent of AED window that must converge to skip a sweep.
 
size_t nmin = 75
 Threshold to switch between blocked and unblocked code.
 
std::function< size_t(size_t, size_t)> nshift_recommender
 Function that returns the number of shifts to use for a given matrix size.
 

Detailed Description

Options struct for multishift_qr().

Member Data Documentation

◆ deflation_window_recommender

std::function<size_t(size_t, size_t)> tlapack::FrancisOpts::deflation_window_recommender
Initial value:
=
[](size_t n, size_t nh) -> size_t {
if (n < 30) return 2;
if (n < 60) return 4;
if (n < 150) return 10;
if (n < 590) return size_t(n / std::log2(n));
if (n < 3000) return 96;
if (n < 6000) return 192;
return 384;
}

Function that returns the number of shifts to use for a given matrix size.

◆ nshift_recommender

std::function<size_t(size_t, size_t)> tlapack::FrancisOpts::nshift_recommender
Initial value:
=
[](size_t n, size_t nh) -> size_t {
if (n < 30) return 2;
if (n < 60) return 4;
if (n < 150) return 10;
if (n < 590) return size_t(n / std::log2(n));
if (n < 3000) return 64;
if (n < 6000) return 128;
return 256;
}

Function that returns the number of shifts to use for a given matrix size.


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