nonlin_multi_var Module



Contents


Interfaces

interface

  • public function fcnnvar(x) result(f)

    Describes a function of N variables.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in), dimension(:) :: x

    An N-element array containing the independent variables.

    Return Value real(kind=real64)

    The value of the function.

interface

  • public subroutine gradientfcn(x, g)

    Describes a routine capable of computing the gradient vector of an equation of N variables.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in), dimension(:) :: x

    An N-element array containing the independent variables.

    real(kind=real64), intent(out), dimension(:) :: g

    An N-element array where the gradient vector will be written as output.

interface

  • public subroutine nonlin_optimize_fcn(this, fcn, x, fout, ib, err)

    Describes the interface of a routine for optimizing an equation of N variables.

    Arguments

    Type IntentOptional Attributes Name
    class(equation_optimizer), intent(inout) :: this

    The equation_optimizer object.

    class(fcnnvar_helper), intent(in) :: fcn

    The fcnnvar_helper object containing the equation to optimize.

    real(kind=real64), intent(inout), dimension(:) :: x

    On input, the initial guess at the optimal point. On output, the updated optimal point estimate.

    real(kind=real64), intent(out), optional :: fout

    An optional output, that if provided, returns the value of the function at x.

    type(iteration_behavior), optional :: ib

    An optional output, that if provided, allows the caller to obtain iteration performance statistics.

    class(errors), intent(inout), optional, target :: err

    An error handling object.


Derived Types

type, public ::  equation_optimizer

A base class for optimization of an equation of multiple variables.

Type-Bound Procedures

procedure , public :: get_max_fcn_evals => oe_get_max_eval Function
procedure , public :: get_print_status => oe_get_print_status Function
procedure , public :: get_tolerance => oe_get_tol Function
procedure , public :: set_max_fcn_evals => oe_set_max_eval Subroutine
procedure , public :: set_print_status => oe_set_print_status Subroutine
procedure , public :: set_tolerance => oe_set_tol Subroutine
procedure (nonlin_optimize_fcn) , public , pass :: solve

type, public ::  fcnnvar_helper

Defines a type capable of encapsulating an equation of N variables.

Type-Bound Procedures

procedure , public :: fcn => fnh_fcn Function
procedure , public :: get_variable_count => fnh_get_nvar Function
procedure , public :: gradient => fnh_grad_fcn Subroutine
procedure , public :: is_fcn_defined => fnh_is_fcn_defined Function
procedure , public :: is_gradient_defined => fnh_is_grad_defined Function
procedure , public :: set_fcn => fnh_set_fcn Subroutine
procedure , public :: set_gradient_fcn => fnh_set_grad Subroutine