ADOL-C: Automatic Differentiation in C/C++ 2.7.3
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | List of all members
ADOLC::Sparse::SparseANF Struct Reference

Stores the abs-normal form in sparse format. More...

#include <sparsematrix.h>

Collaboration diagram for ADOLC::Sparse::SparseANF:
Collaboration graph
[legend]

Public Types

using Shape = SparseShape
 

Public Member Functions

 ~SparseANF ()=default
 
 SparseANF ()=default
 
 SparseANF (Shape dims)
 
 SparseANF (SparseANF &&)=default
 
SparseANF & operator= (SparseANF &&)=default
 
 SparseANF (const SparseANF &)=default
 
SparseANF & operator= (const SparseANF &)=default
 
bool empty () const
 Check whether all sparse blocks and dense vectors are empty.
 
void clear ()
 Clear all sparse blocks and dense vectors.
 
Shape dims () const
 
void updateCy ()
 Compute cy = y - J|z| from the current data.
 
void updateCz ()
 Compute cz = z - L|z| from the current data.
 
void resize (Shape dims)
 Resize sparse blocks according to the given block counts.
 

Public Attributes

Shape shape {}
 
SparseMatrix Y
 Output Jacobian block Y = dy / dx.
 
SparseMatrix J
 Output block J = dy / d|z|.
 
SparseMatrix Z
 Switching-equation Jacobian block Z = dz / dx.
 
SparseMatrix L
 Switching-equation block L = dz / d|z|.
 
std::vector< double > cz
 Constant term of the switching equations.
 
std::vector< double > cy
 Constant term of the dependent equations.
 
std::vector< double > y
 Dependent values at the evaluation point.
 
std::vector< double > z
 Switching-variable values at the evaluation point.
 

Detailed Description

Stores the abs-normal form in sparse format.

This type is intended to satisfy the full AbsNormalFormType interface.

The piecewise-linear sparse drivers recover the extended Jacobian [Y J; Z L]. This type groups the four coordinate-format blocks in that same order inside one owning object. Entries inside each block use block-local coordinates, i.e. Y and J use dependent row indices, Z and L use switching row indices, Y and Z use independent column indices, and J and L use switching-variable column indices.

The dense vectors cy and cz store the abs-normal constants associated with y and z. They are computed by the sparse piecewise-linear driver together with the four Jacobian blocks.

Member Typedef Documentation

◆ Shape

Constructor & Destructor Documentation

◆ ~SparseANF()

ADOLC::Sparse::SparseANF::~SparseANF ( )
default

◆ SparseANF() [1/4]

ADOLC::Sparse::SparseANF::SparseANF ( )
default

◆ SparseANF() [2/4]

ADOLC::Sparse::SparseANF::SparseANF ( Shape  dims)
inlineexplicit

◆ SparseANF() [3/4]

ADOLC::Sparse::SparseANF::SparseANF ( SparseANF &&  )
default

◆ SparseANF() [4/4]

ADOLC::Sparse::SparseANF::SparseANF ( const SparseANF &  )
default

Member Function Documentation

◆ clear()

void ADOLC::Sparse::SparseANF::clear ( )
inline

Clear all sparse blocks and dense vectors.

◆ dims()

Shape ADOLC::Sparse::SparseANF::dims ( ) const
inline

◆ empty()

bool ADOLC::Sparse::SparseANF::empty ( ) const
inline

Check whether all sparse blocks and dense vectors are empty.

◆ operator=() [1/2]

SparseANF & ADOLC::Sparse::SparseANF::operator= ( const SparseANF &  )
default

◆ operator=() [2/2]

SparseANF & ADOLC::Sparse::SparseANF::operator= ( SparseANF &&  )
default

◆ resize()

void ADOLC::Sparse::SparseANF::resize ( Shape  dims)
inline

Resize sparse blocks according to the given block counts.

Parameters
dimsNumber of entries in each sparse block.

◆ updateCy()

void ADOLC::Sparse::SparseANF::updateCy ( )
inline

Compute cy = y - J|z| from the current data.

◆ updateCz()

void ADOLC::Sparse::SparseANF::updateCz ( )
inline

Compute cz = z - L|z| from the current data.

Member Data Documentation

◆ cy

std::vector<double> ADOLC::Sparse::SparseANF::cy

Constant term of the dependent equations.

◆ cz

std::vector<double> ADOLC::Sparse::SparseANF::cz

Constant term of the switching equations.

◆ J

SparseMatrix ADOLC::Sparse::SparseANF::J

Output block J = dy / d|z|.

◆ L

SparseMatrix ADOLC::Sparse::SparseANF::L

Switching-equation block L = dz / d|z|.

◆ shape

Shape ADOLC::Sparse::SparseANF::shape {}

◆ Y

SparseMatrix ADOLC::Sparse::SparseANF::Y

Output Jacobian block Y = dy / dx.

◆ y

std::vector<double> ADOLC::Sparse::SparseANF::y

Dependent values at the evaluation point.

◆ Z

SparseMatrix ADOLC::Sparse::SparseANF::Z

Switching-equation Jacobian block Z = dz / dx.

◆ z

std::vector<double> ADOLC::Sparse::SparseANF::z

Switching-variable values at the evaluation point.


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