ROL
Public Member Functions | Private Member Functions | Private Attributes | List of all members
ROL::Bundle_U_TT< Real > Class Template Reference

Provides the interface for and implements a bundle. The semidefinite quadratic subproblem is solved using TT algorithm by Antonio Frangioni (1996). More...

#include <ROL_Bundle_U_TT.hpp>

+ Inheritance diagram for ROL::Bundle_U_TT< Real >:

Public Member Functions

 Bundle_U_TT (const unsigned maxSize=10, const Real coeff=0.0, const Real omega=2.0, const unsigned remSize=2)
 
unsigned solveDual (const Real t, const unsigned maxit=1000, const Real tol=1.e-8)
 
- Public Member Functions inherited from ROL::Bundle_U< Real >
virtual ~Bundle_U (void)
 
 Bundle_U (const unsigned maxSize=10, const Real coeff=0.0, const Real omega=2.0, const unsigned remSize=2)
 
virtual void initialize (const Vector< Real > &g)
 
const Real linearizationError (const unsigned i) const
 
const Real distanceMeasure (const unsigned i) const
 
const Vector< Real > & subgradient (const unsigned i) const
 
const Real getDualVariable (const unsigned i) const
 
void setDualVariable (const unsigned i, const Real val)
 
void resetDualVariables (void)
 
const Real computeAlpha (const Real dm, const Real le) const
 
const Real alpha (const unsigned i) const
 
unsigned size (void) const
 
void aggregate (Vector< Real > &aggSubGrad, Real &aggLinErr, Real &aggDistMeas) const
 
void reset (const Vector< Real > &g, const Real le, const Real dm)
 
void update (const bool flag, const Real linErr, const Real distMeas, const Vector< Real > &g, const Vector< Real > &s)
 

Private Member Functions

Real sgn (const Real x) const
 
void swapRowsL (unsigned ind1, unsigned ind2, bool trans=false)
 
void updateK (void)
 
void addSubgradToBase (unsigned ind, Real delta)
 
void deleteSubgradFromBase (unsigned ind, Real tol)
 
void solveSystem (int size, char tran, LA::Matrix< Real > &L, LA::Vector< Real > &v)
 
bool isFeasible (LA::Vector< Real > &v, const Real &tol)
 
unsigned solveDual_TT (const Real t, const unsigned maxit=1000, const Real tol=1.e-8)
 
unsigned solveDual_arbitrary (const Real t, const unsigned maxit=1000, const Real tol=1.e-8)
 

Private Attributes

LAPACK< int, Real > lapack_
 
int QPStatus_
 
int maxind_
 
int entering_
 
int LiMax_
 
int LiMin_
 
unsigned maxSize_
 
unsigned dependent_
 
unsigned currSize_
 
bool isInitialized_
 
bool optimal_
 
Real rho_
 
Real lhNorm
 
Real ljNorm
 
Real lhz1_
 
Real lhz2_
 
Real ljz1_
 
Real kappa_
 
Real objval_
 
Real minobjval_
 
Real deltaLh_
 
Real deltaLj_
 
std::vector< int > taboo_
 
std::vector< int > base_
 
LA::Matrix< Real > L_
 
LA::Matrix< Real > Id_
 
LA::Vector< Real > tempv_
 
LA::Vector< Real > tempw1_
 
LA::Vector< Real > tempw2_
 
LA::Vector< Real > lh_
 
LA::Vector< Real > lj_
 
LA::Vector< Real > z1_
 
LA::Vector< Real > z2_
 

Additional Inherited Members

- Protected Member Functions inherited from ROL::Bundle_U< Real >
const Real GiGj (const unsigned i, const unsigned j) const
 
const Real dotGi (const unsigned i, const Vector< Real > &x) const
 
void addGi (const unsigned i, const Real a, Vector< Real > &x) const
 
Real evaluateObjective (std::vector< Real > &g, const std::vector< Real > &x, const Real t) const
 
unsigned solveDual_dim1 (const Real t, const unsigned maxit=1000, const Real tol=1.e-8)
 
unsigned solveDual_dim2 (const Real t, const unsigned maxit=1000, const Real tol=1.e-8)
 

Detailed Description

template<typename Real>
class ROL::Bundle_U_TT< Real >

Provides the interface for and implements a bundle. The semidefinite quadratic subproblem is solved using TT algorithm by Antonio Frangioni (1996).

Definition at line 27 of file ROL_Bundle_U_TT.hpp.

Constructor & Destructor Documentation

template<typename Real >
ROL::Bundle_U_TT< Real >::Bundle_U_TT ( const unsigned  maxSize = 10,
const Real  coeff = 0.0,
const Real  omega = 2.0,
const unsigned  remSize = 2 
)

Member Function Documentation

template<typename Real >
unsigned ROL::Bundle_U_TT< Real >::solveDual ( const Real  t,
const unsigned  maxit = 1000,
const Real  tol = 1.e-8 
)
virtual
template<typename Real >
Real ROL::Bundle_U_TT< Real >::sgn ( const Real  x) const
private

Definition at line 41 of file ROL_Bundle_U_TT_Def.hpp.

References zero.

template<typename Real >
void ROL::Bundle_U_TT< Real >::swapRowsL ( unsigned  ind1,
unsigned  ind2,
bool  trans = false 
)
private

Definition at line 63 of file ROL_Bundle_U_TT_Def.hpp.

References zero.

template<typename Real >
void ROL::Bundle_U_TT< Real >::updateK ( void  )
private

Definition at line 88 of file ROL_Bundle_U_TT_Def.hpp.

template<typename Real >
void ROL::Bundle_U_TT< Real >::addSubgradToBase ( unsigned  ind,
Real  delta 
)
private

Definition at line 110 of file ROL_Bundle_U_TT_Def.hpp.

References ROL::Bundle_U< Real >::alpha().

template<typename Real >
void ROL::Bundle_U_TT< Real >::deleteSubgradFromBase ( unsigned  ind,
Real  tol 
)
private

Definition at line 144 of file ROL_Bundle_U_TT_Def.hpp.

References zero.

template<typename Real >
void ROL::Bundle_U_TT< Real >::solveSystem ( int  size,
char  tran,
LA::Matrix< Real > &  L,
LA::Vector< Real > &  v 
)
private

Definition at line 371 of file ROL_Bundle_U_TT_Def.hpp.

template<typename Real >
bool ROL::Bundle_U_TT< Real >::isFeasible ( LA::Vector< Real > &  v,
const Real &  tol 
)
private

Definition at line 386 of file ROL_Bundle_U_TT_Def.hpp.

template<typename Real >
unsigned ROL::Bundle_U_TT< Real >::solveDual_TT ( const Real  t,
const unsigned  maxit = 1000,
const Real  tol = 1.e-8 
)
private
template<typename Real >
unsigned ROL::Bundle_U_TT< Real >::solveDual_arbitrary ( const Real  t,
const unsigned  maxit = 1000,
const Real  tol = 1.e-8 
)
private

Definition at line 765 of file ROL_Bundle_U_TT_Def.hpp.

Member Data Documentation

template<typename Real >
LAPACK<int, Real> ROL::Bundle_U_TT< Real >::lapack_
private

Definition at line 29 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
int ROL::Bundle_U_TT< Real >::QPStatus_
private

Definition at line 31 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
int ROL::Bundle_U_TT< Real >::maxind_
private

Definition at line 32 of file ROL_Bundle_U_TT.hpp.

Referenced by ROL::Bundle_U_TT< Real >::Bundle_U_TT().

template<typename Real >
int ROL::Bundle_U_TT< Real >::entering_
private

Definition at line 33 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
int ROL::Bundle_U_TT< Real >::LiMax_
private

Definition at line 34 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
int ROL::Bundle_U_TT< Real >::LiMin_
private

Definition at line 35 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
unsigned ROL::Bundle_U_TT< Real >::maxSize_
private

Definition at line 37 of file ROL_Bundle_U_TT.hpp.

Referenced by ROL::Bundle_U_TT< Real >::Bundle_U_TT().

template<typename Real >
unsigned ROL::Bundle_U_TT< Real >::dependent_
private

Definition at line 38 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
unsigned ROL::Bundle_U_TT< Real >::currSize_
private

Definition at line 39 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
bool ROL::Bundle_U_TT< Real >::isInitialized_
private

Definition at line 41 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
bool ROL::Bundle_U_TT< Real >::optimal_
private

Definition at line 42 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
Real ROL::Bundle_U_TT< Real >::rho_
private

Definition at line 44 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
Real ROL::Bundle_U_TT< Real >::lhNorm
private

Definition at line 45 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
Real ROL::Bundle_U_TT< Real >::ljNorm
private

Definition at line 46 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
Real ROL::Bundle_U_TT< Real >::lhz1_
private

Definition at line 47 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
Real ROL::Bundle_U_TT< Real >::lhz2_
private

Definition at line 48 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
Real ROL::Bundle_U_TT< Real >::ljz1_
private

Definition at line 49 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
Real ROL::Bundle_U_TT< Real >::kappa_
private

Definition at line 50 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
Real ROL::Bundle_U_TT< Real >::objval_
private

Definition at line 51 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
Real ROL::Bundle_U_TT< Real >::minobjval_
private

Definition at line 52 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
Real ROL::Bundle_U_TT< Real >::deltaLh_
private

Definition at line 53 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
Real ROL::Bundle_U_TT< Real >::deltaLj_
private

Definition at line 54 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
std::vector<int> ROL::Bundle_U_TT< Real >::taboo_
private

Definition at line 56 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
std::vector<int> ROL::Bundle_U_TT< Real >::base_
private

Definition at line 57 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
LA::Matrix<Real> ROL::Bundle_U_TT< Real >::L_
private

Definition at line 59 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
LA::Matrix<Real> ROL::Bundle_U_TT< Real >::Id_
private

Definition at line 60 of file ROL_Bundle_U_TT.hpp.

Referenced by ROL::Bundle_U_TT< Real >::Bundle_U_TT().

template<typename Real >
LA::Vector<Real> ROL::Bundle_U_TT< Real >::tempv_
private

Definition at line 61 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
LA::Vector<Real> ROL::Bundle_U_TT< Real >::tempw1_
private

Definition at line 62 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
LA::Vector<Real> ROL::Bundle_U_TT< Real >::tempw2_
private

Definition at line 63 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
LA::Vector<Real> ROL::Bundle_U_TT< Real >::lh_
private

Definition at line 64 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
LA::Vector<Real> ROL::Bundle_U_TT< Real >::lj_
private

Definition at line 65 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
LA::Vector<Real> ROL::Bundle_U_TT< Real >::z1_
private

Definition at line 66 of file ROL_Bundle_U_TT.hpp.

template<typename Real >
LA::Vector<Real> ROL::Bundle_U_TT< Real >::z2_
private

Definition at line 67 of file ROL_Bundle_U_TT.hpp.


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