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

# sc\_DFPUpdate(3)

The DFPUpdate class is used to specify a Davidson, Fletcher, and Powell hessian update scheme.

## NAME

sc::DFPUpdate - The **DFPUpdate** class is used to specify a Davidson, Fletcher, and Powell hessian update scheme.

## SYNOPSIS

`#include <update.h>`

Inherits **sc::HessianUpdate**.

Inherited by **sc::BFGSUpdate**.

### Public Member Functions

**DFPUpdate** (**StateIn** &)\
 **DFPUpdate** (const **Ref**\< **KeyVal** \> &)\
 The **KeyVal** constructor reads the following keywords:  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.  void **update** (const **RefSymmSCMatrix** &ihessian, const **Ref**\< **Function** \> &, const **RefSCVector** &xnew, const **RefSCVector** &gnew)\
 void **apply\_transform** (const **Ref**\< **NonlinearTransform** \> &)\
 void **set\_inverse** ()\

### Protected Attributes

**RefSCVector** **xprev**\
 **RefSCVector** **gprev**\

### Additional Inherited Members

## Detailed Description

The **DFPUpdate** class is used to specify a Davidson, Fletcher, and Powell hessian update scheme.

## Constructor & Destructor Documentation

### sc::DFPUpdate::DFPUpdate (const Ref\< KeyVal \> &)

The **KeyVal** constructor reads the following keywords:

- `xprev`

  The previous coordinates can be given (but is not recommended). The default is none.

- `gprev`

  The previous gradient can be given (but is not recommended). The default is none.

## Member Function Documentation

### void sc::DFPUpdate::apply\_transform (const Ref\< NonlinearTransform \> &)` [virtual]`

Reimplemented from **sc::HessianUpdate**.

### void sc::DFPUpdate::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::HessianUpdate**.

Reimplemented in **sc::BFGSUpdate**.

### void sc::DFPUpdate::set\_inverse ()` [virtual]`

Reimplemented from **sc::HessianUpdate**.

### void sc::DFPUpdate::update (const RefSymmSCMatrix & ihessian, const Ref\< Function \> &, const RefSCVector & xnew, const RefSCVector & gnew)` [virtual]`

Implements **sc::HessianUpdate**.

## Author

Generated automatically by Doxygen for MPQC from the source code.
