gstlearn  1.0.0
CCC
HessianOp Class Reference

#include <HessianOp.hpp>

Inheritance diagram for HessianOp:
ALinearOp

Public Member Functions

 HessianOp (const CGParam params=CGParam())
 
virtual ~HessianOp ()
 
int init (PrecisionOp *pmat, const ProjMatrix *projdata, const ProjMatrix *projseis, const VectorDouble &indic, const VectorDouble &propseis, const VectorDouble &varseis)
 
int getSize () const override
 
void setLambda (const VectorDouble &lambda)
 
- Public Member Functions inherited from ALinearOp
 ALinearOp (const CGParam params=CGParam())
 
 ALinearOp (const ALinearOp &m)
 
ALinearOpoperator= (const ALinearOp &m)
 
virtual ~ALinearOp ()
 
virtual void evalInverse (const VectorDouble &inv, VectorDouble &outv) const
 
void evalDirect (const VectorDouble &inv, VectorDouble &outv) const
 
void setX0 (const VectorDouble &x0)
 
void mustShowStats (bool status)
 
const LogStatsgetLogStats () const
 

Protected Member Functions

void _evalDirect (const VectorDouble &inv, VectorDouble &outv) const override
 

Private Attributes

bool _isInitialized
 
bool _flagSeismic
 
PrecisionOp_pMat
 
const ProjMatrix_projData
 
const ProjMatrix_projSeis
 
VectorDouble _indic
 
VectorDouble _propSeis
 
VectorDouble _varSeis
 
VectorDouble _lambda
 
VectorDouble _workp
 
VectorDouble _workx
 
VectorDouble _workv
 
VectorDouble _works
 

Additional Inherited Members

- Protected Attributes inherited from ALinearOp
LogStats _logStats
 

Constructor & Destructor Documentation

◆ HessianOp()

HessianOp::HessianOp ( const CGParam  params = CGParam())

◆ ~HessianOp()

HessianOp::~HessianOp ( )
virtual

Member Function Documentation

◆ _evalDirect()

void HessianOp::_evalDirect ( const VectorDouble inv,
VectorDouble outv 
) const
overrideprotectedvirtual

Operate the operation: 'outv' = HESS * 'inv'

Parameters
[in]invArray of input values
[out]outvArray of output values

Implements ALinearOp.

◆ getSize()

int HessianOp::getSize ( ) const
inlineoverridevirtual

Returns the dimension of the matrix

Implements ALinearOp.

◆ init()

int HessianOp::init ( PrecisionOp pmat,
const ProjMatrix projdata,
const ProjMatrix projseis,
const VectorDouble indic,
const VectorDouble propseis,
const VectorDouble varseis 
)

Initialize the Hessian Operator

Parameters
[in]pmatThe precision matrix to be optimized
[in]projdataThe Projection operator between Data and Meshing
[in]projseisThe Projection operator between Seismic and Meshing
[in]indicArray of facies values
[in]propseisArray of facies proportions
[in]varseisArray of variance attached to the seismic

◆ setLambda()

void HessianOp::setLambda ( const VectorDouble lambda)
inline

Set the initial vector

Member Data Documentation

◆ _flagSeismic

bool HessianOp::_flagSeismic
private

◆ _indic

VectorDouble HessianOp::_indic
private

◆ _isInitialized

bool HessianOp::_isInitialized
private

◆ _lambda

VectorDouble HessianOp::_lambda
private

◆ _pMat

PrecisionOp* HessianOp::_pMat
private

◆ _projData

const ProjMatrix* HessianOp::_projData
private

◆ _projSeis

const ProjMatrix* HessianOp::_projSeis
private

◆ _propSeis

VectorDouble HessianOp::_propSeis
private

◆ _varSeis

VectorDouble HessianOp::_varSeis
private

◆ _workp

VectorDouble HessianOp::_workp
mutableprivate

◆ _works

VectorDouble HessianOp::_works
mutableprivate

◆ _workv

VectorDouble HessianOp::_workv
mutableprivate

◆ _workx

VectorDouble HessianOp::_workx
mutableprivate

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