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

# sc\_SteepestDescentOpt(3)

## NAME

sc::SteepestDescentOpt

## SYNOPSIS

Inherits **sc::Optimize**.

### Public Member Functions

**SteepestDescentOpt** (const **Ref**\< **KeyVal** \> &)\
 **SteepestDescentOpt** (**StateIn** &)\
 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 **init** ()\
 Initialize the optimizer.  int **update** ()\
 Take a step.

### Protected Attributes

double **maxabs\_gradient**\
 double **accuracy\_**\
 **Ref**\< **LineOpt** \> **lineopt\_**\
 int **take\_newton\_step\_**\
 int **print\_x\_**\
 int **print\_gradient\_**\

### Additional Inherited Members

## Member Function Documentation

### void sc::SteepestDescentOpt::init ()` [virtual]`

Initialize the optimizer.

Reimplemented from **sc::Optimize**.

### void sc::SteepestDescentOpt::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::Optimize**.

### int sc::SteepestDescentOpt::update ()` [virtual]`

Take a step. Returns 1 if the optimization has converged, otherwise 0.

Implements **sc::Optimize**.

## Author

Generated automatically by Doxygen for MPQC from the source code.
