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

# sc\_Optimize(3)

The Optimize class is an abstract base class for classes that find the extreme points of Function's.

## NAME

sc::Optimize - The **Optimize** class is an abstract base class for classes that find the extreme points of **Function**'s.

## SYNOPSIS

`#include <opt.h>`

Inherits **sc::SavableState**.

Inherited by **sc::EFCOpt**, **sc::GDIISOpt**, **sc::LineOpt**, **sc::NewtonOpt**, **sc::QNewtonOpt**, and **sc::SteepestDescentOpt**.

### Public Member Functions

**Optimize** (**StateIn** &)\
 Restore the state of a **Function** object.  **Optimize** (const **Ref**\< **KeyVal** \> &)\
 The **KeyVal** constructor reads the following information:  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 int **optimize** ()\
 Do the optimization.  void **set\_checkpoint** ()\
 Set up for checkpointing.  void **set\_checkpoint\_file** (const char \*)\
 void **set\_function** (const **Ref**\< **Function** \> &)\
 Set the function to be optimized.  void **set\_max\_iterations** (int)\
 Set the iteration limit.  virtual void **init** ()\
 Initialize the optimizer.  virtual int **update** ()=0\
 Take a step.  virtual void **apply\_transform** (const **Ref**\< **NonlinearTransform** \> &)\
 **Ref**\< **Function** \> **function** () const\
 Returns information about the **Function** being optimized.  **Ref**\< **SCMatrixKit** \> **matrixkit** () const\
 **RefSCDimension** **dimension** () const\

### Protected Attributes

int **max\_iterations\_**\
 int **n\_iterations\_**\
 int **ckpt\_**\
 int **print\_timings\_**\
 double **max\_stepsize\_**\
 char \* **ckpt\_file**\
 **Ref**\< **Function** \> **function\_**\
 **Ref**\< **Convergence** \> **conv\_**\

### Additional Inherited Members

## Detailed Description

The **Optimize** class is an abstract base class for classes that find the extreme points of **Function**'s.

## Constructor & Destructor Documentation

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

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

- `checkpoint`

  If true, the optimization will be checkpointed. The default is false.

- `checkpoint_file`

  The name of the checkpoint file. The name defaults to opt\_ckpt.dat.

- `max_iterations`

  The maximum number of interations. The default is 10.

- `max_stepsize`

  The maximum stepsize. The default is 0.6.

- `function`

  A **Function** object. There is no default.

- `convergence`

  This can be either a floating point number or a **Convergence** object. If it is a floating point number then it is the convergence criterion. See the description **Convergence** class for the default.

## Member Function Documentation

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

Reimplemented in **sc::LineOpt**.

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

Initialize the optimizer.

Reimplemented in **sc::EFCOpt**, **sc::GDIISOpt**, **sc::NewtonOpt**, **sc::QNewtonOpt**, and **sc::SteepestDescentOpt**.

### virtual int sc::Optimize::optimize ()` [virtual]`

Do the optimization. Returns nonzero if the optimization is complete.

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

### virtual int sc::Optimize::update ()` [pure virtual]`

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

Implemented in **sc::EFCOpt**, **sc::GDIISOpt**, **sc::MCSearch**, **sc::NewtonOpt**, **sc::Backtrack**, **sc::QNewtonOpt**, and **sc::SteepestDescentOpt**.

## Author

Generated automatically by Doxygen for MPQC from the source code.
