クラス osl::stat::SparseRegressionMultiplier

incrementaly compute out=Ap where A = X^tX [詳細]

#include <sparseRegressionMultiplier.h>

osl::stat::SparseRegressionMultiplierに対する継承グラフ

Inheritance graph
[凡例]
osl::stat::SparseRegressionMultiplierのコラボレーション図

Collaboration graph
[凡例]

すべてのメンバ一覧

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


説明

incrementaly compute out=Ap where A = X^tX

sparseRegressionMultiplier.h16 行で定義されています。


コンストラクタとデストラクタ

osl::stat::SparseRegressionMultiplier::SparseRegressionMultiplier ( unsigned int  dimA = 0,
double  lambda = 0.0,
unsigned int  lambda_start = 0 
) [explicit]

sparseRegressionMultiplier.cc15 行で定義されています。

osl::stat::SparseRegressionMultiplier::~SparseRegressionMultiplier (  ) 

sparseRegressionMultiplier.cc23 行で定義されています。


関数

void osl::stat::SparseRegressionMultiplier::setSplit ( int  num_cpus = 0  )  [inline]

sparseRegressionMultiplier.h29 行で定義されています。

参照先 num_cpus, と split.

void osl::stat::SparseRegressionMultiplier::init ( unsigned int  new_dimA  )  [inline, protected]

sparseRegressionMultiplier.h31 行で定義されています。

参照先 m_dimA.

void osl::stat::SparseRegressionMultiplier::prod ( const double *  p,
double *  out 
) const [virtual]

return X^tX * p

osl::stat::MatrixMultiplierを実装しています。

sparseRegressionMultiplier.cc35 行で定義されています。

参照先 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.cc98 行で定義されています。

参照先 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.cc143 行で定義されています。

参照先 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]

戻り値:
false if the end of sequence (the next call must return the beginning of the sequence)

osl::stat::SparseRegressionMultiplierSeqで実装されています。

参照元 computeXtY(), computeXtYDiag(), prod(), prodDiag(), と prodRaw().

void osl::stat::SparseRegressionMultiplier::newIteration (  )  const [virtual]

osl::stat::InstanceMultiplierで再定義されています。

sparseRegressionMultiplier.cc30 行で定義されています。

参照元 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.cc232 行で定義されています。

参照先 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]

sparseRegressionMultiplier.cc258 行で定義されています。

参照先 m_dimA.

参照元 prodDiag().

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
戻り値:
instances

sparseRegressionMultiplier.cc164 行で定義されています。

参照先 dim(), getVectorXWithID(), と m_lambda.

unsigned int osl::stat::SparseRegressionMultiplier::computeXtYDiag ( const double *  weight,
const double *  y,
double *  xty,
double *  diag_inv 
) const [virtual]

sparseRegressionMultiplier.cc199 行で定義されています。

参照先 dim(), getVectorXWithID(), と m_lambda.


変数

ĴŤߤ dimension.

οľܴʤ

sparseRegressionMultiplier.h19 行で定義されています。

参照元 addProduct(), addProductDiag(), dim(), init(), prod(), prodDiag(), と prodRaw().

regularization term

sparseRegressionMultiplier.h21 行で定義されています。

参照元 computeXtY(), computeXtYDiag(), prod(), と prodDiag().

sparseRegressionMultiplier.h22 行で定義されています。

参照元 prod(), と prodDiag().

sparseRegressionMultiplier.h23 行で定義されています。

参照元 prodDiag(), と setSplit().


このクラスの説明は次のファイルから生成されました:

Thu Oct 8 05:01:19 2009に生成されました。  doxygen 1.5.6