DMRITool  v0.1.1-139-g860d86b4
Diffusion MRI Tool
Classes | Namespaces | Enumerations | Functions
fista.h File Reference
#include <linalg.h>
#include <project.h>
+ Include dependency graph for fista.h:

Go to the source code of this file.

Classes

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

Namespaces

 spams
 
 spams::FISTA
 

Enumerations

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

Functions

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)
 
template<typename T , typename D , typename E >
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 >
spams::FISTA::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 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 >
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)
 
loss_t spams::FISTA::loss_from_string (char *loss)
 
template<typename T >
bool spams::FISTA::param_for_admm (const ParamFISTA< T > &param)
 
template<typename T >
void spams::FISTA::print_info_solver (const ParamFISTA< T > &param)
 
void spams::FISTA::print_loss (const loss_t &loss)
 
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)
 
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)
 
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)