#include <sparseRegressionMultiplier.h>
Public メソッド | |
SparseRegressionMultiplier (unsigned int dimA=0, double lambda=0.0, unsigned int lambda_start=0) | |
~SparseRegressionMultiplier () | |
void | setSplit (int num_cpus=0) |
void | prod (const double *p, double *out) const |
return X^tX * p | |
void | prodDiag (const double *d, const double *p, double *out) const |
return X^t D X * p, where D is a diagonal matrix | |
void | prodRaw (const double *q, double *out) const |
return X * q | |
unsigned int | dim () const |
virtual bool | getVectorXWithID (unsigned int &instance_id, unsigned int &num_elements, unsigned int *non_zero_indices, double *non_zero_values) const =0 |
virtual void | newIteration () const |
virtual unsigned int | computeXtY (const double *y, double *xty, double *diag_inv) const |
virtual unsigned int | computeXtYDiag (const double *weight, const double *y, double *xty, double *diag_inv) const |
Protected メソッド | |
void | init (unsigned int new_dimA) |
void | addProduct (unsigned int non_zeros, const unsigned int *non_zero_indices, const double *non_zero_values, const double *p, double *out) const |
partially compute X^tX*p and add to out where non_zero_{indices,values} reperesent one row in X | |
void | addProductDiag (unsigned int non_zeros, const unsigned int *non_zero_indices, const double *non_zero_values, const double d, const double *p, double *out) const |
Private 変数 | |
unsigned int | m_dimA |
ĴŤߤ dimension. | |
double | m_lambda |
regularization term | |
unsigned int | m_lambda_start |
int | split |
構成 | |
struct | ProdDiag |
sparseRegressionMultiplier.h の 16 行で定義されています。
osl::stat::SparseRegressionMultiplier::SparseRegressionMultiplier | ( | unsigned int | dimA = 0 , |
|
double | lambda = 0.0 , |
|||
unsigned int | lambda_start = 0 | |||
) | [explicit] |
sparseRegressionMultiplier.cc の 15 行で定義されています。
osl::stat::SparseRegressionMultiplier::~SparseRegressionMultiplier | ( | ) |
sparseRegressionMultiplier.cc の 23 行で定義されています。
void osl::stat::SparseRegressionMultiplier::setSplit | ( | int | num_cpus = 0 |
) | [inline] |
void osl::stat::SparseRegressionMultiplier::init | ( | unsigned int | new_dimA | ) | [inline, protected] |
void osl::stat::SparseRegressionMultiplier::prod | ( | const double * | p, | |
double * | out | |||
) | const [virtual] |
return X^tX * p
osl::stat::MatrixMultiplierを実装しています。
sparseRegressionMultiplier.cc の 35 行で定義されています。
参照先 addProduct(), getVectorXWithID(), m_dimA, m_lambda, m_lambda_start, と newIteration().
void osl::stat::SparseRegressionMultiplier::prodDiag | ( | const double * | d, | |
const double * | p, | |||
double * | out | |||
) | const |
return X^t D X * p, where D is a diagonal matrix
sparseRegressionMultiplier.cc の 98 行で定義されています。
参照先 addProductDiag(), getVectorXWithID(), m_dimA, m_lambda, m_lambda_start, newIteration(), と split.
void osl::stat::SparseRegressionMultiplier::prodRaw | ( | const double * | q, | |
double * | out | |||
) | const |
return X * q
sparseRegressionMultiplier.cc の 143 行で定義されています。
参照先 getVectorXWithID(), m_dimA, と newIteration().
unsigned int osl::stat::SparseRegressionMultiplier::dim | ( | ) | const [virtual] |
virtual bool osl::stat::SparseRegressionMultiplier::getVectorXWithID | ( | unsigned int & | instance_id, | |
unsigned int & | num_elements, | |||
unsigned int * | non_zero_indices, | |||
double * | non_zero_values | |||
) | const [pure virtual] |
osl::stat::SparseRegressionMultiplierSeqで実装されています。
参照元 computeXtY(), computeXtYDiag(), prod(), prodDiag(), と prodRaw().
void osl::stat::SparseRegressionMultiplier::newIteration | ( | ) | const [virtual] |
osl::stat::InstanceMultiplierで再定義されています。
sparseRegressionMultiplier.cc の 30 行で定義されています。
参照元 prod(), prodDiag(), と prodRaw().
void osl::stat::SparseRegressionMultiplier::addProduct | ( | unsigned int | non_zeros, | |
const unsigned int * | non_zero_indices, | |||
const double * | non_zero_values, | |||
const double * | p, | |||
double * | out | |||
) | const [protected] |
partially compute X^tX*p and add to out where non_zero_{indices,values} reperesent one row in X
sparseRegressionMultiplier.cc の 232 行で定義されています。
参照先 m_dimA.
参照元 prod().
void osl::stat::SparseRegressionMultiplier::addProductDiag | ( | unsigned int | non_zeros, | |
const unsigned int * | non_zero_indices, | |||
const double * | non_zero_values, | |||
const double | d, | |||
const double * | p, | |||
double * | out | |||
) | const [protected] |
unsigned int osl::stat::SparseRegressionMultiplier::computeXtY | ( | const double * | y, | |
double * | xty, | |||
double * | diag_inv | |||
) | const [virtual] |
xty | is b such that Ax=b to solve x | |
diag_inv | used in order to make diagonal preconditioner of X^tX |
sparseRegressionMultiplier.cc の 164 行で定義されています。
参照先 dim(), getVectorXWithID(), と m_lambda.
unsigned int osl::stat::SparseRegressionMultiplier::computeXtYDiag | ( | const double * | weight, | |
const double * | y, | |||
double * | xty, | |||
double * | diag_inv | |||
) | const [virtual] |
unsigned int osl::stat::SparseRegressionMultiplier::m_dimA [private] |
ĴŤߤ dimension.
οľܴʤ
sparseRegressionMultiplier.h の 19 行で定義されています。
参照元 addProduct(), addProductDiag(), dim(), init(), prod(), prodDiag(), と prodRaw().
double osl::stat::SparseRegressionMultiplier::m_lambda [private] |
regularization term
sparseRegressionMultiplier.h の 21 行で定義されています。
参照元 computeXtY(), computeXtYDiag(), prod(), と prodDiag().
unsigned int osl::stat::SparseRegressionMultiplier::m_lambda_start [private] |
int osl::stat::SparseRegressionMultiplier::split [private] |