---
name: "sc_HessianUpdate"
section: "3"
platform: "linux"
package: "libsc-doc"
version: "2.3.1-22"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/sc_HessianUpdate"
---

# sc\_HessianUpdate(3)

The HessianUpdate abstract class is used to specify a hessian update scheme.

## NAME

sc::HessianUpdate - The **HessianUpdate** abstract class is used to specify a hessian update scheme.

## SYNOPSIS

`#include <update.h>`

Inherits **sc::SavableState**.

Inherited by **sc::DFPUpdate**, and **sc::PowellUpdate**.

### Public Member Functions

**HessianUpdate** (**StateIn** &)\
 **HessianUpdate** (const **Ref**\< **KeyVal** \> &)\
 void **save\_data\_state** (**StateOut** &)\
 Save the base classes (with save\_data\_state) and the members in the same order that the **StateIn** CTOR initializes them.  virtual void **update** (const **RefSymmSCMatrix** &hessian, const **Ref**\< **Function** \> &, const **RefSCVector** &xnew, const **RefSCVector** &gnew)=0\
 virtual void **set\_inverse** ()\
 virtual void **apply\_transform** (const **Ref**\< **NonlinearTransform** \> &)\

### Protected Attributes

int **inverse\_hessian\_**\

### Additional Inherited Members

## Detailed Description

The **HessianUpdate** abstract class is used to specify a hessian update scheme.

It is used, for example, by **QNewtonOpt** objects. Based on the value of inverse\_hessian\_ x and g may be reversed (see Schlegel, Ab initio Methods in Quantum Chemistry I, 1987, p 10).

## Member Function Documentation

### void sc::HessianUpdate::save\_data\_state (StateOut &)` [virtual]`

Save the base classes (with save\_data\_state) and the members in the same order that the **StateIn** CTOR initializes them. This must be implemented by the derived class if the class has data.

Reimplemented from **sc::SavableState**.

Reimplemented in **sc::DFPUpdate**, **sc::BFGSUpdate**, and **sc::PowellUpdate**.

## Author

Generated automatically by Doxygen for MPQC from the source code.
