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

◆ Bundle_TT()

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

◆ GiTGj()

template<class Real >
Real ROL::Bundle_TT< Real >::GiTGj ( const int  i,
const int  j 
)
inline

◆ swapRowsL()

template<class Real >
void ROL::Bundle_TT< Real >::swapRowsL ( unsigned  ind1,
unsigned  ind2,
bool  trans = false 
)
inlineprivate

◆ updateK()

template<class Real >
void ROL::Bundle_TT< Real >::updateK ( )
inlineprivate

◆ addSubgradToBase()

template<class Real >
void ROL::Bundle_TT< Real >::addSubgradToBase ( unsigned  ind,
Real  delta 
)
inlineprivate

◆ deleteSubgradFromBase()

template<class Real >
void ROL::Bundle_TT< Real >::deleteSubgradFromBase ( unsigned  ind,
Real  tol 
)
inlineprivate

◆ evaluateObjective()

template<class Real >
Real ROL::Bundle_TT< Real >::evaluateObjective ( std::vector< Real > &  g,
const std::vector< Real > &  x,
const Real  t 
) const
inlineprivate

◆ solveDual_dim1()

template<class Real >
unsigned ROL::Bundle_TT< Real >::solveDual_dim1 ( const Real  t,
const unsigned  maxit = 1000,
const Real  tol = 1.e-8 
)
inlineprivate

◆ solveDual_dim2()

template<class Real >
unsigned ROL::Bundle_TT< Real >::solveDual_dim2 ( const Real  t,
const unsigned  maxit = 1000,
const Real  tol = 1.e-8 
)
inlineprivate

◆ solveSystem()

template<class Real >
void ROL::Bundle_TT< Real >::solveSystem ( int  size,
char  tran,
Teuchos::SerialDenseMatrix< int, Real > &  L,
Teuchos::SerialDenseVector< int, Real > &  v 
)
inlineprivate

◆ isFeasible()

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().

◆ 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

◆ solveDual()

template<class Real >
unsigned ROL::Bundle_TT< Real >::solveDual ( const Real  t,
const unsigned  maxit = 1000,
const Real  tol = 1.e-8 
)
inlinevirtual

◆ checkPrimary()

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

◆ maxSize_

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().

◆ lapack_

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

Definition at line 81 of file ROL_Bundle_TT.hpp.

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

◆ QPStatus_

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

◆ INF

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

◆ maxind

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

◆ entering_

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

Definition at line 104 of file ROL_Bundle_TT.hpp.

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

◆ taboo_

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

Definition at line 105 of file ROL_Bundle_TT.hpp.

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

◆ optimal_

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().

◆ dependent_

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

◆ rho_

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().

◆ currSize_

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

◆ base

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

◆ L

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

◆ Id

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

◆ tempv

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

Definition at line 113 of file ROL_Bundle_TT.hpp.

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

◆ tempw1

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().

◆ tempw2

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().

◆ lh

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

◆ lj

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

◆ z1

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

◆ z2

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

◆ lhNorm

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

◆ ljNorm

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

◆ z1Tz2

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

Definition at line 120 of file ROL_Bundle_TT.hpp.

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

◆ z1Tz1

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().

◆ lhTz1

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

◆ lhTz2

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

◆ ljTz1

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

◆ LiMax

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

◆ LiMin

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

◆ kappa

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

◆ Quad

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

Definition at line 124 of file ROL_Bundle_TT.hpp.

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

◆ Lin

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

Definition at line 124 of file ROL_Bundle_TT.hpp.

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

◆ objval

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().

◆ minobjval

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

Definition at line 126 of file ROL_Bundle_TT.hpp.

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

◆ deltaLh

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().

◆ deltaLj

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: