ROL
Public Member Functions | Private Member Functions | Private Attributes | List of all members
ROL::Bundle_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_TT.hpp>

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

Public Member Functions

 Bundle_TT (const unsigned maxSize=10, const Real coeff=0.0, const unsigned remSize=2)
 
Real GiTGj (const int i, const int j)
 
unsigned solveDual (const Real t, const unsigned maxit=1000, const Real tol=1.e-8)
 
bool checkPrimary (std::vector< Real > &g, const std::vector< Real > &x, const Real t) const
 
- Public Member Functions inherited from ROL::Bundle< Real >
virtual ~Bundle (void)
 
 Bundle (const unsigned maxSize=10, const Real coeff=0.0, const unsigned remSize=2)
 
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 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

void swapRowsL (unsigned ind1, unsigned ind2, bool trans=false)
 
void updateK ()
 
void addSubgradToBase (unsigned ind, Real delta)
 
void deleteSubgradFromBase (unsigned ind, Real tol)
 
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)
 
void solveSystem (int size, char tran, Teuchos::SerialDenseMatrix< int, Real > &L, Teuchos::SerialDenseVector< int, Real > &v)
 
bool isFeasible (Teuchos::SerialDenseVector< int, Real > &v, const Real &tol)
 
unsigned solveDual_TT (const Real t, const unsigned maxit=1000, const Real tol=1.e-8)
 

Private Attributes

unsigned maxSize_
 
Teuchos::LAPACK< int, Real > lapack_
 
int QPStatus_
 
Real INF
 
int maxind
 
int entering_
 
std::vector< int > taboo_
 
bool optimal_
 
unsigned dependent_
 
Real rho_
 
unsigned currSize_
 
std::vector< int > base
 
Teuchos::SerialDenseMatrix< int, Real > L
 
Teuchos::SerialDenseMatrix< int, Real > Id
 
Teuchos::SerialDenseVector< int, Real > tempv
 
Teuchos::SerialDenseVector< int, Real > tempw1
 
Teuchos::SerialDenseVector< int, Real > tempw2
 
Teuchos::SerialDenseVector< int, Real > lh
 
Teuchos::SerialDenseVector< int, Real > lj
 
Teuchos::SerialDenseVector< int, Real > z1
 
Teuchos::SerialDenseVector< int, Real > z2
 
Real lhNorm
 
Real ljNorm
 
Real z1Tz2
 
Real z1Tz1
 
Real lhTz1
 
Real lhTz2
 
Real ljTz1
 
int LiMax
 
int LiMin
 
Real kappa
 
Real Quad
 
Real Lin
 
Real objval
 
Real minobjval
 
Real deltaLh
 
Real deltaLj
 

Additional Inherited Members

- Protected Member Functions inherited from ROL::Bundle< Real >
Real getDualVariables (const unsigned i)
 
void setDualVariables (const unsigned i, const Real val)
 
void resetDualVariables (void)
 
- Protected Attributes inherited from ROL::Bundle< Real >
Teuchos::RCP< Vector< Real > > tG_
 
Teuchos::RCP< Vector< Real > > eG_
 
Teuchos::RCP< Vector< Real > > yG_
 
Teuchos::RCP< Vector< Real > > gx_
 
Teuchos::RCP< Vector< Real > > ge_
 

Detailed Description

template<class Real>
class ROL::Bundle_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 77 of file ROL_Bundle_TT.hpp.

Constructor & Destructor Documentation

template<class Real >
ROL::Bundle_TT< Real >::Bundle_TT ( const unsigned  maxSize = 10,
const Real  coeff = 0.0,
const unsigned  remSize = 2 
)
inline

Member Function Documentation

template<class Real >
Real ROL::Bundle_TT< Real >::GiTGj ( const int  i,
const int  j 
)
inline
template<class Real >
void ROL::Bundle_TT< Real >::swapRowsL ( unsigned  ind1,
unsigned  ind2,
bool  trans = false 
)
inlineprivate
template<class Real >
void ROL::Bundle_TT< Real >::updateK ( )
inlineprivate
template<class Real >
void ROL::Bundle_TT< Real >::addSubgradToBase ( unsigned  ind,
Real  delta 
)
inlineprivate
template<class Real >
void ROL::Bundle_TT< Real >::deleteSubgradFromBase ( unsigned  ind,
Real  tol 
)
inlineprivate
template<class Real >
Real ROL::Bundle_TT< Real >::evaluateObjective ( std::vector< Real > &  g,
const std::vector< Real > &  x,
const Real  t 
) const
inlineprivate
template<class Real >
unsigned ROL::Bundle_TT< Real >::solveDual_dim1 ( const Real  t,
const unsigned  maxit = 1000,
const Real  tol = 1.e-8 
)
inlineprivate
template<class Real >
unsigned ROL::Bundle_TT< Real >::solveDual_dim2 ( const Real  t,
const unsigned  maxit = 1000,
const Real  tol = 1.e-8 
)
inlineprivate
template<class Real >
void ROL::Bundle_TT< Real >::solveSystem ( int  size,
char  tran,
Teuchos::SerialDenseMatrix< int, Real > &  L,
Teuchos::SerialDenseVector< int, Real > &  v 
)
inlineprivate

Definition at line 565 of file ROL_Bundle_TT.hpp.

References ROL::Bundle< Real >::size().

Referenced by ROL::Bundle_TT< Real >::solveDual_TT().

template<class Real >
bool ROL::Bundle_TT< Real >::isFeasible ( Teuchos::SerialDenseVector< int, Real > &  v,
const Real &  tol 
)
inlineprivate

Definition at line 580 of file ROL_Bundle_TT.hpp.

Referenced by ROL::Bundle_TT< Real >::solveDual_TT().

template<class Real >
unsigned ROL::Bundle_TT< Real >::solveDual_TT ( const Real  t,
const unsigned  maxit = 1000,
const Real  tol = 1.e-8 
)
inlineprivate
template<class Real >
unsigned ROL::Bundle_TT< Real >::solveDual ( const Real  t,
const unsigned  maxit = 1000,
const Real  tol = 1.e-8 
)
inlinevirtual
template<class Real >
bool ROL::Bundle_TT< Real >::checkPrimary ( std::vector< Real > &  g,
const std::vector< Real > &  x,
const Real  t 
) const
inline

Member Data Documentation

template<class Real >
unsigned ROL::Bundle_TT< Real >::maxSize_
private

Definition at line 80 of file ROL_Bundle_TT.hpp.

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

template<class Real >
Teuchos::LAPACK<int, Real> ROL::Bundle_TT< Real >::lapack_
private

Definition at line 81 of file ROL_Bundle_TT.hpp.

template<class Real >
int ROL::Bundle_TT< Real >::QPStatus_
private

Definition at line 101 of file ROL_Bundle_TT.hpp.

template<class Real >
Real ROL::Bundle_TT< Real >::INF
private
template<class Real >
int ROL::Bundle_TT< Real >::maxind
private
template<class Real >
int ROL::Bundle_TT< Real >::entering_
private

Definition at line 104 of file ROL_Bundle_TT.hpp.

template<class Real >
std::vector<int> ROL::Bundle_TT< Real >::taboo_
private

Definition at line 105 of file ROL_Bundle_TT.hpp.

template<class Real >
bool ROL::Bundle_TT< Real >::optimal_
private

Definition at line 106 of file ROL_Bundle_TT.hpp.

Referenced by ROL::Bundle_TT< Real >::solveDual_TT().

template<class Real >
unsigned ROL::Bundle_TT< Real >::dependent_
private
template<class Real >
Real ROL::Bundle_TT< Real >::rho_
private

Definition at line 108 of file ROL_Bundle_TT.hpp.

Referenced by ROL::Bundle_TT< Real >::solveDual_TT().

template<class Real >
unsigned ROL::Bundle_TT< Real >::currSize_
private
template<class Real >
std::vector<int> ROL::Bundle_TT< Real >::base
private

Definition at line 110 of file ROL_Bundle_TT.hpp.

template<class Real >
Teuchos::SerialDenseMatrix<int, Real> ROL::Bundle_TT< Real >::L
private
template<class Real >
Teuchos::SerialDenseMatrix<int, Real> ROL::Bundle_TT< Real >::Id
private

Definition at line 112 of file ROL_Bundle_TT.hpp.

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

template<class Real >
Teuchos::SerialDenseVector<int, Real> ROL::Bundle_TT< Real >::tempv
private

Definition at line 113 of file ROL_Bundle_TT.hpp.

template<class Real >
Teuchos::SerialDenseVector<int, Real> ROL::Bundle_TT< Real >::tempw1
private

Definition at line 114 of file ROL_Bundle_TT.hpp.

Referenced by ROL::Bundle_TT< Real >::solveDual_TT().

template<class Real >
Teuchos::SerialDenseVector<int, Real> ROL::Bundle_TT< Real >::tempw2
private

Definition at line 115 of file ROL_Bundle_TT.hpp.

Referenced by ROL::Bundle_TT< Real >::solveDual_TT().

template<class Real >
Teuchos::SerialDenseVector<int, Real> ROL::Bundle_TT< Real >::lh
private

Definition at line 116 of file ROL_Bundle_TT.hpp.

Referenced by ROL::Bundle_TT< Real >::solveDual_TT().

template<class Real >
Teuchos::SerialDenseVector<int, Real> ROL::Bundle_TT< Real >::lj
private

Definition at line 117 of file ROL_Bundle_TT.hpp.

Referenced by ROL::Bundle_TT< Real >::solveDual_TT().

template<class Real >
Teuchos::SerialDenseVector<int, Real> ROL::Bundle_TT< Real >::z1
private

Definition at line 118 of file ROL_Bundle_TT.hpp.

Referenced by ROL::Bundle_TT< Real >::solveDual_TT().

template<class Real >
Teuchos::SerialDenseVector<int, Real> ROL::Bundle_TT< Real >::z2
private

Definition at line 119 of file ROL_Bundle_TT.hpp.

Referenced by ROL::Bundle_TT< Real >::solveDual_TT().

template<class Real >
Real ROL::Bundle_TT< Real >::lhNorm
private

Definition at line 120 of file ROL_Bundle_TT.hpp.

template<class Real >
Real ROL::Bundle_TT< Real >::ljNorm
private

Definition at line 120 of file ROL_Bundle_TT.hpp.

Referenced by ROL::Bundle_TT< Real >::deleteSubgradFromBase().

template<class Real >
Real ROL::Bundle_TT< Real >::z1Tz2
private

Definition at line 120 of file ROL_Bundle_TT.hpp.

template<class Real >
Real ROL::Bundle_TT< Real >::z1Tz1
private

Definition at line 120 of file ROL_Bundle_TT.hpp.

Referenced by ROL::Bundle_TT< Real >::solveDual_TT().

template<class Real >
Real ROL::Bundle_TT< Real >::lhTz1
private
template<class Real >
Real ROL::Bundle_TT< Real >::lhTz2
private
template<class Real >
Real ROL::Bundle_TT< Real >::ljTz1
private

Definition at line 120 of file ROL_Bundle_TT.hpp.

template<class Real >
int ROL::Bundle_TT< Real >::LiMax
private

Definition at line 121 of file ROL_Bundle_TT.hpp.

template<class Real >
int ROL::Bundle_TT< Real >::LiMin
private

Definition at line 122 of file ROL_Bundle_TT.hpp.

template<class Real >
Real ROL::Bundle_TT< Real >::kappa
private

Definition at line 123 of file ROL_Bundle_TT.hpp.

template<class Real >
Real ROL::Bundle_TT< Real >::Quad
private

Definition at line 124 of file ROL_Bundle_TT.hpp.

template<class Real >
Real ROL::Bundle_TT< Real >::Lin
private

Definition at line 124 of file ROL_Bundle_TT.hpp.

template<class Real >
Real ROL::Bundle_TT< Real >::objval
private

Definition at line 125 of file ROL_Bundle_TT.hpp.

Referenced by ROL::Bundle_TT< Real >::solveDual_TT().

template<class Real >
Real ROL::Bundle_TT< Real >::minobjval
private

Definition at line 126 of file ROL_Bundle_TT.hpp.

template<class Real >
Real ROL::Bundle_TT< Real >::deltaLh
private

Definition at line 127 of file ROL_Bundle_TT.hpp.

Referenced by ROL::Bundle_TT< Real >::deleteSubgradFromBase().

template<class Real >
Real ROL::Bundle_TT< Real >::deltaLj
private

Definition at line 127 of file ROL_Bundle_TT.hpp.

Referenced by ROL::Bundle_TT< Real >::deleteSubgradFromBase().


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