slope 6.6.0
Loading...
Searching...
No Matches
slope::NoScreening Class Reference

No screening rule - uses all variables. More...

#include <screening.h>

Inheritance diagram for slope::NoScreening:
Collaboration diagram for slope::NoScreening:

Public Member Functions

std::vector< int > initialize (int feature_count, int alpha_max_ind) override
 Initialize the screening rule at the start of the path algorithm.
void screen (std::vector< int > &working_set, Eigen::VectorXd &gradient, const Eigen::ArrayXd &lambda_curr, const Eigen::ArrayXd &lambda_prev, const Eigen::VectorXd &beta) override
 Screen for the next path step.
bool checkKktViolations (Eigen::VectorXd &gradient, const Eigen::VectorXd &beta, const Eigen::ArrayXd &lambda_curr, std::vector< int > &working_set, const Eigen::MatrixXd &x, const Eigen::MatrixXd &residual, const Eigen::VectorXd &x_centers, const Eigen::VectorXd &x_scales, JitNormalization jit_normalization) override
 Check for KKT violations and update working set if necessary.
bool checkKktViolations (Eigen::VectorXd &gradient, const Eigen::VectorXd &beta, const Eigen::ArrayXd &lambda_curr, std::vector< int > &working_set, const Eigen::SparseMatrix< double > &x, const Eigen::MatrixXd &residual, const Eigen::VectorXd &x_centers, const Eigen::VectorXd &x_scales, JitNormalization jit_normalization) override
 Check for KKT violations with sparse matrix input.
bool checkKktViolations (Eigen::VectorXd &gradient, const Eigen::VectorXd &beta, const Eigen::ArrayXd &lambda_curr, std::vector< int > &working_set, const Eigen::Map< Eigen::MatrixXd > &x, const Eigen::MatrixXd &residual, const Eigen::VectorXd &x_centers, const Eigen::VectorXd &x_scales, JitNormalization jit_normalization) override
 Check for KKT violations with sparse matrix input.
bool checkKktViolations (Eigen::VectorXd &gradient, const Eigen::VectorXd &beta, const Eigen::ArrayXd &lambda_curr, std::vector< int > &working_set, const Eigen::Map< Eigen::SparseMatrix< double > > &x, const Eigen::MatrixXd &residual, const Eigen::VectorXd &x_centers, const Eigen::VectorXd &x_scales, JitNormalization jit_normalization) override
 Check for KKT violations with sparse matrix input.
std::string toString () const override
 Get string representation of the screening rule.
Public Member Functions inherited from slope::ScreeningRule
virtual ~ScreeningRule ()=default
 Virtual destructor.

Additional Inherited Members

Protected Attributes inherited from slope::ScreeningRule
std::vector< int > strong_set
 Strong set of variables.

Detailed Description

No screening rule - uses all variables.

Definition at line 192 of file screening.h.

Member Function Documentation

◆ checkKktViolations() [1/4]

bool slope::NoScreening::checkKktViolations ( Eigen::VectorXd & gradient,
const Eigen::VectorXd & beta,
const Eigen::ArrayXd & lambda_curr,
std::vector< int > & working_set,
const Eigen::Map< Eigen::MatrixXd > & x,
const Eigen::MatrixXd & residual,
const Eigen::VectorXd & x_centers,
const Eigen::VectorXd & x_scales,
JitNormalization jit_normalization )
overridevirtual

Check for KKT violations with sparse matrix input.

Parameters
gradientThe gradient vector
betaCurrent beta coefficients
lambda_currCurrent lambda values
working_setCurrent working set (will be updated if violations found)
xDesign matrix (sparse format)
residualCurrent residuals
x_centersCenters for normalization
x_scalesScales for normalization
jit_normalizationWhether to use JIT normalization
Returns
True if no violations found, false otherwise

Implements slope::ScreeningRule.

◆ checkKktViolations() [2/4]

bool slope::NoScreening::checkKktViolations ( Eigen::VectorXd & gradient,
const Eigen::VectorXd & beta,
const Eigen::ArrayXd & lambda_curr,
std::vector< int > & working_set,
const Eigen::Map< Eigen::SparseMatrix< double > > & x,
const Eigen::MatrixXd & residual,
const Eigen::VectorXd & x_centers,
const Eigen::VectorXd & x_scales,
JitNormalization jit_normalization )
overridevirtual

Check for KKT violations with sparse matrix input.

Parameters
gradientThe gradient vector
betaCurrent beta coefficients
lambda_currCurrent lambda values
working_setCurrent working set (will be updated if violations found)
xDesign matrix (sparse format)
residualCurrent residuals
x_centersCenters for normalization
x_scalesScales for normalization
jit_normalizationWhether to use JIT normalization
Returns
True if no violations found, false otherwise

Implements slope::ScreeningRule.

◆ checkKktViolations() [3/4]

bool slope::NoScreening::checkKktViolations ( Eigen::VectorXd & gradient,
const Eigen::VectorXd & beta,
const Eigen::ArrayXd & lambda_curr,
std::vector< int > & working_set,
const Eigen::MatrixXd & x,
const Eigen::MatrixXd & residual,
const Eigen::VectorXd & x_centers,
const Eigen::VectorXd & x_scales,
JitNormalization jit_normalization )
overridevirtual

Check for KKT violations and update working set if necessary.

Parameters
gradientThe gradient vector
betaCurrent beta coefficients
lambda_currCurrent lambda values
working_setCurrent working set (will be updated if violations found)
xDesign matrix
residualCurrent residuals
x_centersCenters for normalization
x_scalesScales for normalization
jit_normalizationWhether to use JIT normalization
Returns
True if no violations found, false otherwise

Implements slope::ScreeningRule.

◆ checkKktViolations() [4/4]

bool slope::NoScreening::checkKktViolations ( Eigen::VectorXd & gradient,
const Eigen::VectorXd & beta,
const Eigen::ArrayXd & lambda_curr,
std::vector< int > & working_set,
const Eigen::SparseMatrix< double > & x,
const Eigen::MatrixXd & residual,
const Eigen::VectorXd & x_centers,
const Eigen::VectorXd & x_scales,
JitNormalization jit_normalization )
overridevirtual

Check for KKT violations with sparse matrix input.

Parameters
gradientThe gradient vector
betaCurrent beta coefficients
lambda_currCurrent lambda values
working_setCurrent working set (will be updated if violations found)
xDesign matrix (sparse format)
residualCurrent residuals
x_centersCenters for normalization
x_scalesScales for normalization
jit_normalizationWhether to use JIT normalization
Returns
True if no violations found, false otherwise

Implements slope::ScreeningRule.

◆ initialize()

std::vector< int > slope::NoScreening::initialize ( int feature_count,
int alpha_max_ind )
overridevirtual

Initialize the screening rule at the start of the path algorithm.

Parameters
feature_countThe total number of coefficients
alpha_max_indThe index of the feature with maximum absolute gradient
Returns
The initial working set

Implements slope::ScreeningRule.

◆ screen()

void slope::NoScreening::screen ( std::vector< int > & working_set,
Eigen::VectorXd & gradient,
const Eigen::ArrayXd & lambda_curr,
const Eigen::ArrayXd & lambda_prev,
const Eigen::VectorXd & beta )
overridevirtual

Screen for the next path step.

Parameters
gradientThe gradient vector
lambda_currCurrent lambda values
lambda_prevPrevious lambda values
betaCurrent beta coefficients
working_setWorking set to update for the current path step

Implements slope::ScreeningRule.

◆ toString()

std::string slope::NoScreening::toString ( ) const
overridevirtual

Get string representation of the screening rule.

Returns
Name of the screening rule

Implements slope::ScreeningRule.


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