MPQC 3.0.0-alpha
Loading...
Searching...
No Matches
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.
 
virtual void transform_hessian (const RefSymmSCMatrix &h)
 Transform the hessian to the new coordinate system.
 
virtual void transform_ihessian (const RefSymmSCMatrix &ih)
 Transform the inverse of the hessian.
 
- 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.
 
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
 Return 1 if the object is managed. Otherwise return 0.
 

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

virtual void sc::NonlinearTransform::transform_coordinates ( const RefSCVector & x)
pure virtual

Transform the coordinates.

Implemented in sc::IdentityTransform.

◆ 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 Wed Sep 25 2024 02:45:34 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.12.0.