DMRITool  v0.1.1-139-g860d86b4
Diffusion MRI Tool
Classes | Enumerations | Functions
spams::FISTA Namespace Reference

Classes

class  ComposeProx
 
struct  ElasticNet
 
class  FusedLasso
 
class  GraphLasso
 
struct  GraphLassoRidge
 
class  GraphMult
 
class  GraphPathConv
 
class  GraphPathL0
 
struct  GroupLassoL2
 
struct  GroupLassoL2_L1
 
struct  GroupLassoLINF
 
struct  GroupLassoLINF_L1
 
class  GroupProx
 
class  HingeLoss
 
class  Lasso
 
class  LassoConstraint
 
class  LogLoss
 
class  Loss
 
class  LossCur
 
class  LossMat
 
class  LossMat< T, LogLoss< T, weighted > >
 
class  LossMat< T, SqLossMissing< T > >
 
class  LossMatSup
 
class  Lzero
 
class  MixedL1L2
 
struct  MixedL1L2_L1
 
class  MixedL1LINF
 
struct  MixedL1LINF_L1
 
class  MixedL1LINFCR
 
class  MultiLogLoss
 
class  None
 
class  normL2
 
class  normLINF
 
struct  ParamFISTA
 
struct  ParamReg
 
class  ProxMatToVec
 
class  Rank
 
class  RegMat
 
class  Regularizer
 
class  Ridge
 
class  SpecGraphMat
 
class  SplittingFunction
 
class  SqLoss
 
class  SqLossMat
 
class  SqLossMissing
 
class  TraceNorm
 
class  TreeLasso
 
class  TreeLzero
 
class  TreeMult
 

Enumerations

enum  loss_t {
  SQUARE,
  SQUARE_MISSING,
  LOG,
  LOGWEIGHT,
  MULTILOG,
  CUR,
  HINGE,
  INCORRECT_LOSS
}
 
enum  regul_t {
  L0,
  L1,
  RIDGE,
  L2,
  LINF,
  L1CONSTRAINT,
  ELASTICNET,
  FUSEDLASSO,
  GROUPLASSO_L2,
  GROUPLASSO_LINF,
  GROUPLASSO_L2_L1,
  GROUPLASSO_LINF_L1,
  L1L2,
  L1LINF,
  L1L2_L1,
  L1LINF_L1,
  TREE_L0,
  TREE_L2,
  TREE_LINF,
  GRAPH,
  GRAPH_RIDGE,
  GRAPH_L2,
  TREEMULT,
  GRAPHMULT,
  L1LINFCR,
  NONE,
  TRACE_NORM,
  TRACE_NORM_VEC,
  RANK,
  RANK_VEC,
  INCORRECT_REG,
  GRAPH_PATH_L0,
  GRAPH_PATH_CONV
}
 

Functions

template<typename T >
void ADMM (const SplittingFunction< T, Matrix< T > > &loss, const SplittingFunction< T, SpMatrix< T > > &reg, const Vector< T > &w0, Vector< T > &w, Vector< T > &optim_info, const ParamFISTA< T > &param)
 
template<typename T >
void convert_paths_to_mat (const List< Path< long long > * > &paths, SpMatrix< T > &paths_mat, const int n)
 
template<typename T , typename D , typename E >
duality_gap (Loss< T, D, E > &loss, Regularizer< T, D > &regularizer, const D &x, const T lambda, T &best_dual, const bool verbose=false)
 
template<typename T , typename D , typename E >
duality_gap (Loss< T, D, E > &loss, Regularizer< T, D > &regularizer, const D &x, const T lambda, const bool verbose=false)
 
template<typename T >
void dualityGraph (const Matrix< T > &X, const Matrix< T > &D, const Matrix< T > &alpha0, Vector< T > &res, const ParamFISTA< T > &param, const GraphStruct< T > *graph_st)
 
template<typename T >
void EvalGraphPath (const Matrix< T > &alpha0, const ParamFISTA< T > &param, Vector< T > &val_loss, const GraphPathStruct< T > *graph_path_st, SpMatrix< T > *paths=NULL)
 
template<typename T , typename D , typename E >
void FISTA_Generic (Loss< T, D, E > &loss, Regularizer< T, D > &regularizer, const D &x0, D &x, Vector< T > &optim_info, const ParamFISTA< T > &param)
 
template<typename T , typename D , typename E >
void ISTA_Generic (Loss< T, D, E > &loss, Regularizer< T, D > &regularizer, const D &x0, D &x, Vector< T > &optim_info, const ParamFISTA< T > &param)
 
template<typename T >
LagrangianADMM (const SplittingFunction< T, Matrix< T > > &loss, const SplittingFunction< T, SpMatrix< T > > &reg, const T lambda, const T gamma, const Vector< T > &w, const Matrix< T > &splitted_loss, const SpMatrix< T > &splitted_reg, const Matrix< T > &multi_loss, const SpMatrix< T > &multi_reg, T &los, const T *weights=NULL)
 
template<typename T >
void LinADMM (const SplittingFunction< T, Matrix< T > > &loss, const SplittingFunction< T, SpMatrix< T > > &reg, const Vector< T > &w0, Vector< T > &w, Vector< T > &optim_info, const ParamFISTA< T > &param)
 
bool loss_for_matrices (const loss_t &loss)
 
loss_t loss_from_string (char *loss)
 
template<typename T >
bool param_for_admm (const ParamFISTA< T > &param)
 
template<typename T >
void print_info_solver (const ParamFISTA< T > &param)
 
void print_loss (const loss_t &loss)
 
void print_regul (const regul_t &regul)
 
template<typename T >
void PROX (const Matrix< T > &alpha0, Matrix< T > &alpha, const ParamFISTA< T > &param, Vector< T > &val_loss, const GraphStruct< T > *graph_st=NULL, const TreeStruct< T > *tree_st=NULL, const GraphPathStruct< T > *graph_path_st=NULL)
 
bool regul_for_matrices (const regul_t &regul)
 
regul_t regul_from_string (char *regul)
 
template<typename T >
SplittingFunction< T, SpMatrix< T > > * setRegularizerADMM (const ParamFISTA< T > &param, const GraphStruct< T > *graph_st=NULL, const TreeStruct< T > *tree_st=NULL)
 
template<typename T >
Regularizer< T, Matrix< T > > * setRegularizerMatrices (const ParamFISTA< T > &param, const int m, const int n, const GraphStruct< T > *graph_st=NULL, const TreeStruct< T > *tree_st=NULL, const GraphPathStruct< T > *graph_path_st=NULL)
 
template<typename T >
Regularizer< T > * setRegularizerVectors (const ParamFISTA< T > &param, const GraphStruct< T > *graph_st=NULL, const TreeStruct< T > *tree_st=NULL, const GraphPathStruct< T > *graph_path_st=NULL)
 
template<typename T >
void solver (const Matrix< T > &X, const AbstractMatrixB< T > &D, const Matrix< T > &alpha0, Matrix< T > &alpha, const ParamFISTA< T > &param1, Matrix< T > &optim_info, const GraphStruct< T > *graph_st=NULL, const TreeStruct< T > *tree_st=NULL, const GraphPathStruct< T > *graph_path_st=NULL)
 
template<typename T >
void solver_admm (const Matrix< T > &X, const Matrix< T > &alpha0, Matrix< T > &alpha, Matrix< T > &optim_info, SplittingFunction< T, SpMatrix< T > > **regularizers, SplittingFunction< T, Matrix< T > > **losses, const ParamFISTA< T > &param)
 
template<typename T >
void solver_aux1 (const Matrix< T > &X, const Matrix< T > &alpha0, Matrix< T > &alpha, Matrix< T > &optim_info, Regularizer< T, Vector< T > > **regularizers, Loss< T, Vector< T > > **losses, const ParamFISTA< T > &param)
 
template<typename T >
void solver_aux2 (const Matrix< T > &X, const Matrix< T > &alpha0, Matrix< T > &alpha, Matrix< T > &optim_info, Regularizer< T, Matrix< T > > **regularizers, Loss< T, Matrix< T > > **losses, const ParamFISTA< T > &param)
 
template<typename T , typename D , typename E >
void subGradientDescent_Generic (Loss< T, D, E > &loss, Regularizer< T, D > &regularizer, const D &x0, D &x, Vector< T > &optim_info, const ParamFISTA< T > &param)
 
template<typename T >
void update_multipliers_ADMM (Vector< T > &w, const Matrix< T > &splitted_w_loss, const Matrix< T > &multipliers_w_loss, const SpMatrix< T > &splitted_w_reg, const SpMatrix< T > &multipliers_w_reg, const T gamma)
 
template<typename T >
void update_multipliers_LinADMM (Vector< T > &w, const SpMatrix< T > &splitted_w_reg, const SpMatrix< T > &multipliers_w_reg, const T gamma, const T delta)
 
template<typename T >
void update_multipliers_weighted_ADMM (Vector< T > &w, const Matrix< T > &splitted_w_loss, const Matrix< T > &multipliers_w_loss, const SpMatrix< T > &splitted_w_reg, const SpMatrix< T > &multipliers_w_reg, const T gamma, const T *inner_weights)
 
template<typename T >
void writeLog (const int iter, const T time, const T primal, const T dual, char *name)
 

Enumeration Type Documentation

Enumerator
SQUARE 
SQUARE_MISSING 
LOG 
LOGWEIGHT 
MULTILOG 
CUR 
HINGE 
INCORRECT_LOSS 

Definition at line 31 of file fista.h.

Enumerator
L0 
L1 
RIDGE 
L2 
LINF 
L1CONSTRAINT 
ELASTICNET 
FUSEDLASSO 
GROUPLASSO_L2 
GROUPLASSO_LINF 
GROUPLASSO_L2_L1 
GROUPLASSO_LINF_L1 
L1L2 
L1LINF 
L1L2_L1 
L1LINF_L1 
TREE_L0 
TREE_L2 
TREE_LINF 
GRAPH 
GRAPH_RIDGE 
GRAPH_L2 
TREEMULT 
GRAPHMULT 
L1LINFCR 
NONE 
TRACE_NORM 
TRACE_NORM_VEC 
RANK 
RANK_VEC 
INCORRECT_REG 
GRAPH_PATH_L0 
GRAPH_PATH_CONV 

Definition at line 32 of file fista.h.

Function Documentation

template<typename T >
void spams::FISTA::ADMM ( const SplittingFunction< T, Matrix< T > > &  loss,
const SplittingFunction< T, SpMatrix< T > > &  reg,
const Vector< T > &  w0,
Vector< T > &  w,
Vector< T > &  optim_info,
const ParamFISTA< T > &  param 
)
template<typename T >
void spams::FISTA::convert_paths_to_mat ( const List< Path< long long > * > &  paths,
SpMatrix< T > &  paths_mat,
const int  n 
)
inline
template<typename T , typename D , typename E >
T spams::FISTA::duality_gap ( Loss< T, D, E > &  loss,
Regularizer< T, D > &  regularizer,
const D &  x,
const T  lambda,
T &  best_dual,
const bool  verbose = false 
)
template<typename T , typename D , typename E >
T spams::FISTA::duality_gap ( Loss< T, D, E > &  loss,
Regularizer< T, D > &  regularizer,
const D &  x,
const T  lambda,
const bool  verbose = false 
)

Definition at line 2555 of file fista.h.

References duality_gap(), INFINITY, and spams::FISTA::ParamFISTA< T >::verbose.

+ Here is the call graph for this function:

template<typename T >
void spams::FISTA::dualityGraph ( const Matrix< T > &  X,
const Matrix< T > &  D,
const Matrix< T > &  alpha0,
Vector< T > &  res,
const ParamFISTA< T > &  param,
const GraphStruct< T > *  graph_st 
)
template<typename T >
void spams::FISTA::EvalGraphPath ( const Matrix< T > &  alpha0,
const ParamFISTA< T > &  param,
Vector< T > &  val_loss,
const GraphPathStruct< T > *  graph_path_st,
SpMatrix< T > *  paths = NULL 
)
template<typename T , typename D , typename E >
void spams::FISTA::FISTA_Generic ( Loss< T, D, E > &  loss,
Regularizer< T, D > &  regularizer,
const D &  x0,
D &  x,
Vector< T > &  optim_info,
const ParamFISTA< T > &  param 
)
template<typename T , typename D , typename E >
void spams::FISTA::ISTA_Generic ( Loss< T, D, E > &  loss,
Regularizer< T, D > &  regularizer,
const D &  x0,
D &  x,
Vector< T > &  optim_info,
const ParamFISTA< T > &  param 
)
template<typename T >
T spams::FISTA::LagrangianADMM ( const SplittingFunction< T, Matrix< T > > &  loss,
const SplittingFunction< T, SpMatrix< T > > &  reg,
const T  lambda,
const T  gamma,
const Vector< T > &  w,
const Matrix< T > &  splitted_loss,
const SpMatrix< T > &  splitted_reg,
const Matrix< T > &  multi_loss,
const SpMatrix< T > &  multi_reg,
T &  los,
const T *  weights = NULL 
)
template<typename T >
void spams::FISTA::LinADMM ( const SplittingFunction< T, Matrix< T > > &  loss,
const SplittingFunction< T, SpMatrix< T > > &  reg,
const Vector< T > &  w0,
Vector< T > &  w,
Vector< T > &  optim_info,
const ParamFISTA< T > &  param 
)
bool spams::FISTA::loss_for_matrices ( const loss_t loss)

Definition at line 94 of file fista.h.

References CUR, and MULTILOG.

Referenced by solver().

+ Here is the caller graph for this function:

loss_t spams::FISTA::loss_from_string ( char *  loss)

Definition at line 70 of file fista.h.

References CUR, HINGE, INCORRECT_LOSS, LOG, LOGWEIGHT, MULTILOG, SQUARE, and SQUARE_MISSING.

template<typename T >
bool spams::FISTA::param_for_admm ( const ParamFISTA< T > &  param)

Definition at line 236 of file fista.h.

References spams::FISTA::ParamFISTA< T >::admm, GRAPH, GRAPH_L2, HINGE, spams::FISTA::ParamFISTA< T >::loss, NONE, spams::FISTA::ParamFISTA< T >::regul, and SQUARE.

Referenced by print_info_solver(), and solver().

+ Here is the caller graph for this function:

template<typename T >
void spams::FISTA::print_info_solver ( const ParamFISTA< T > &  param)
void spams::FISTA::print_loss ( const loss_t loss)

Definition at line 81 of file fista.h.

References CUR, HINGE, LOG, LOGWEIGHT, MULTILOG, SQUARE, and SQUARE_MISSING.

Referenced by print_info_solver().

+ Here is the caller graph for this function:

void spams::FISTA::print_regul ( const regul_t regul)
template<typename T >
void spams::FISTA::PROX ( const Matrix< T > &  alpha0,
Matrix< T > &  alpha,
const ParamFISTA< T > &  param,
Vector< T > &  val_loss,
const GraphStruct< T > *  graph_st = NULL,
const TreeStruct< T > *  tree_st = NULL,
const GraphPathStruct< T > *  graph_path_st = NULL 
)
bool spams::FISTA::regul_for_matrices ( const regul_t regul)

Definition at line 136 of file fista.h.

References GRAPHMULT, L1L2, L1L2_L1, L1LINF, L1LINF_L1, L1LINFCR, RANK, TRACE_NORM, and TREEMULT.

Referenced by EvalGraphPath(), PROX(), and solver().

+ Here is the caller graph for this function:

regul_t spams::FISTA::regul_from_string ( char *  regul)
template<typename T >
SplittingFunction<T, SpMatrix<T> >* spams::FISTA::setRegularizerADMM ( const ParamFISTA< T > &  param,
const GraphStruct< T > *  graph_st = NULL,
const TreeStruct< T > *  tree_st = NULL 
)
template<typename T >
Regularizer<T, Matrix<T> >* spams::FISTA::setRegularizerMatrices ( const ParamFISTA< T > &  param,
const int  m,
const int  n,
const GraphStruct< T > *  graph_st = NULL,
const TreeStruct< T > *  tree_st = NULL,
const GraphPathStruct< T > *  graph_path_st = NULL 
)
template<typename T >
Regularizer<T>* spams::FISTA::setRegularizerVectors ( const ParamFISTA< T > &  param,
const GraphStruct< T > *  graph_st = NULL,
const TreeStruct< T > *  tree_st = NULL,
const GraphPathStruct< T > *  graph_path_st = NULL 
)
template<typename T >
void spams::FISTA::solver ( const Matrix< T > &  X,
const AbstractMatrixB< T > &  D,
const Matrix< T > &  alpha0,
Matrix< T > &  alpha,
const ParamFISTA< T > &  param1,
Matrix< T > &  optim_info,
const GraphStruct< T > *  graph_st = NULL,
const TreeStruct< T > *  tree_st = NULL,
const GraphPathStruct< T > *  graph_path_st = NULL 
)
template<typename T >
void spams::FISTA::solver_admm ( const Matrix< T > &  X,
const Matrix< T > &  alpha0,
Matrix< T > &  alpha,
Matrix< T > &  optim_info,
SplittingFunction< T, SpMatrix< T > > **  regularizers,
SplittingFunction< T, Matrix< T > > **  losses,
const ParamFISTA< T > &  param 
)

Definition at line 3312 of file fista.h.

References spams::FISTA::ParamFISTA< T >::admm, ADMM(), spams::FISTA::ParamFISTA< T >::lin_admm, LinADMM(), spams::Matrix< T >::n(), spams::Matrix< T >::refCol(), and spams::Matrix< T >::resize().

Referenced by solver().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename T >
void spams::FISTA::solver_aux1 ( const Matrix< T > &  X,
const Matrix< T > &  alpha0,
Matrix< T > &  alpha,
Matrix< T > &  optim_info,
Regularizer< T, Vector< T > > **  regularizers,
Loss< T, Vector< T > > **  losses,
const ParamFISTA< T > &  param 
)
template<typename T >
void spams::FISTA::solver_aux2 ( const Matrix< T > &  X,
const Matrix< T > &  alpha0,
Matrix< T > &  alpha,
Matrix< T > &  optim_info,
Regularizer< T, Matrix< T > > **  regularizers,
Loss< T, Matrix< T > > **  losses,
const ParamFISTA< T > &  param 
)
template<typename T , typename D , typename E >
void spams::FISTA::subGradientDescent_Generic ( Loss< T, D, E > &  loss,
Regularizer< T, D > &  regularizer,
const D &  x0,
D &  x,
Vector< T > &  optim_info,
const ParamFISTA< T > &  param 
)
template<typename T >
void spams::FISTA::update_multipliers_ADMM ( Vector< T > &  w,
const Matrix< T > &  splitted_w_loss,
const Matrix< T > &  multipliers_w_loss,
const SpMatrix< T > &  splitted_w_reg,
const SpMatrix< T > &  multipliers_w_reg,
const T  gamma 
)
template<typename T >
void spams::FISTA::update_multipliers_LinADMM ( Vector< T > &  w,
const SpMatrix< T > &  splitted_w_reg,
const SpMatrix< T > &  multipliers_w_reg,
const T  gamma,
const T  delta 
)
template<typename T >
void spams::FISTA::update_multipliers_weighted_ADMM ( Vector< T > &  w,
const Matrix< T > &  splitted_w_loss,
const Matrix< T > &  multipliers_w_loss,
const SpMatrix< T > &  splitted_w_reg,
const SpMatrix< T > &  multipliers_w_reg,
const T  gamma,
const T *  inner_weights 
)
template<typename T >
void spams::FISTA::writeLog ( const int  iter,
const T  time,
const T  primal,
const T  dual,
char *  name 
)

Definition at line 2587 of file fista.h.

Referenced by ADMM(), FISTA_Generic(), ISTA_Generic(), LinADMM(), and subGradientDescent_Generic().

+ Here is the caller graph for this function: