MPQC  3.0.0-alpha
sc::NonlinearTransform Class Referenceabstract

The NonlinearTransform class transforms between two nonlinear coordinate systems. More...

#include <math/optimize/transform.h>

Inheritance diagram for sc::NonlinearTransform:
sc::RefCount sc::IdentityTransform

Public Member Functions

virtual void transform_coordinates (const RefSCVector &x)=0
 Transform the coordinates.
 
virtual void transform_gradient (const RefSCVector &g)
 Transform the gradient at a point in the new coordinate system. More...
 
virtual void transform_hessian (const RefSymmSCMatrix &h)
 Transform the hessian to the new coordinate system. More...
 
virtual void transform_ihessian (const RefSymmSCMatrix &ih)
 Transform the inverse of the hessian. More...
 
- Public Member Functions inherited from sc::RefCount
size_t identifier () const
 Return the unique identifier for this object that can be compared for different objects of different types. More...
 
int lock_ptr () const
 Lock this object.
 
int unlock_ptr () const
 Unlock this object.
 
void use_locks (bool inVal)
 start and stop using locks on this object
 
refcount_t nreference () const
 Return the reference count.
 
refcount_t reference ()
 Increment the reference count and return the new count.
 
refcount_t dereference ()
 Decrement the reference count and return the new count.
 
int managed () const
 
void unmanage ()
 Turn off the reference counting mechanism for this object. More...
 

Protected Attributes

RefSCMatrix linear_transform_
 

Additional Inherited Members

- Protected Member Functions inherited from sc::RefCount
 RefCount (const RefCount &)
 
RefCountoperator= (const RefCount &)
 

Detailed Description

The NonlinearTransform class transforms between two nonlinear coordinate systems.

It is needed when a change of coordinates occurs in the middle of an optimization.

Member Function Documentation

◆ transform_gradient()

virtual void sc::NonlinearTransform::transform_gradient ( const RefSCVector g)
virtual

Transform the gradient at a point in the new coordinate system.

transform_coordinates must be called first to give the point.

Reimplemented in sc::IdentityTransform.

◆ transform_hessian()

virtual void sc::NonlinearTransform::transform_hessian ( const RefSymmSCMatrix h)
virtual

Transform the hessian to the new coordinate system.

transform_gradient must be called first to initialize this routine.

Reimplemented in sc::IdentityTransform.

◆ transform_ihessian()

virtual void sc::NonlinearTransform::transform_ihessian ( const RefSymmSCMatrix ih)
virtual

Transform the inverse of the hessian.

transform_gradient must be called first to initialize this routine.

Reimplemented in sc::IdentityTransform.


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

Generated at Sun Jan 26 2020 23:24:08 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.16.