Defines a type capable of performing an inexact, backtracking line search to find a point as far along the specified direction vector that is usable for unconstrained minimization problems.
See Also:
Gets a distance factor defining the minimum distance along the search direction vector is practical.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_search), | intent(in) | :: | this |
The line_search object. |
The distance factor. A value of 1 indicates the full length of the vector.
Gets the maximum number of function evaluations allowed during a single line search.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_search), | intent(in) | :: | this |
The line_search object. |
The maximum number of function evaluations.
Gets the scaling of the product of the gradient and direction vectors such that , where is the search direction vector, is the gradient vector, and is the scaling factor.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_search), | intent(in) | :: | this |
The line_search object. |
The scaling factor.
Utilizes an inexact, backtracking line search to find a point as far along the specified direction vector that is usable for unconstrained minimization problems.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_search), | intent(in) | :: | this |
The line_search object. |
||
| class(vecfcn_helper), | intent(in) | :: | fcn |
A vecfcn_helper object containing the system of equations. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | xold |
An N-element array defining the initial point, where N is the number of variables. |
|
| real(kind=real64), | intent(in), | dimension(:) | :: | grad |
An N-element array defining the gradient of fcn evaluated at xold. |
|
| real(kind=real64), | intent(in), | dimension(:) | :: | dir |
An N-element array defining the search direction. |
|
| real(kind=real64), | intent(out), | dimension(:) | :: | x |
An N-element array where the updated solution point will be written. |
|
| real(kind=real64), | intent(out), | dimension(:) | :: | fvec |
An M-element array containing the M equation values evaluated at x, where M is the number of equations. |
|
| real(kind=real64), | intent(in), | optional | :: | fold |
An optional input that provides the value resulting from: . If not provided, fcn is evalauted at xold, and the aforementioned relationship is computed. |
|
| real(kind=real64), | intent(out), | optional | :: | fx |
The result of the operation: . |
|
| 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. |
Utilizes an inexact, backtracking line search to find a point as far along the specified direction vector that is usable for unconstrained minimization problems.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_search), | intent(in) | :: | this |
The line_search object. |
||
| class(fcnnvar_helper), | intent(in) | :: | fcn |
A fcnnvar_helper object containing the system of equations. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | xold |
An N-element array defining the initial point, where N is the number of variables. |
|
| real(kind=real64), | intent(in), | dimension(:) | :: | grad |
An N-element array defining the gradient of fcn evaluated at xold. |
|
| real(kind=real64), | intent(in), | dimension(:) | :: | dir |
An N-element array defining the search direction. |
|
| real(kind=real64), | intent(out), | dimension(:) | :: | x |
An N-element array where the updated solution point will be written. |
|
| real(kind=real64), | intent(in), | optional | :: | fold |
An optional input that provides the function value at xold. If not provided, fcn is evalauted at xold. |
|
| real(kind=real64), | intent(out), | optional | :: | fx |
The value of the function as evaluated 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. |
Utilizes an inexact, backtracking line search to find a point as far along the specified direction vector that is usable for unconstrained minimization problems.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_search), | intent(in) | :: | this |
The line_search object. |
||
| class(vecfcn_helper), | intent(in) | :: | fcn |
A vecfcn_helper object containing the system of equations. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | xold |
An N-element array defining the initial point, where N is the number of variables. |
|
| real(kind=real64), | intent(in), | dimension(:) | :: | grad |
An N-element array defining the gradient of fcn evaluated at xold. |
|
| real(kind=real64), | intent(in), | dimension(:) | :: | dir |
An N-element array defining the search direction. |
|
| real(kind=real64), | intent(out), | dimension(:) | :: | x |
An N-element array where the updated solution point will be written. |
|
| real(kind=real64), | intent(out), | dimension(:) | :: | fvec |
An M-element array containing the M equation values evaluated at x, where M is the number of equations. |
|
| real(kind=real64), | intent(in), | optional | :: | fold |
An optional input that provides the value resulting from: . If not provided, fcn is evalauted at xold, and the aforementioned relationship is computed. |
|
| real(kind=real64), | intent(out), | optional | :: | fx |
The result of the operation: . |
|
| 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. |
Utilizes an inexact, backtracking line search to find a point as far along the specified direction vector that is usable for unconstrained minimization problems.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_search), | intent(in) | :: | this |
The line_search object. |
||
| class(fcnnvar_helper), | intent(in) | :: | fcn |
A fcnnvar_helper object containing the system of equations. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | xold |
An N-element array defining the initial point, where N is the number of variables. |
|
| real(kind=real64), | intent(in), | dimension(:) | :: | grad |
An N-element array defining the gradient of fcn evaluated at xold. |
|
| real(kind=real64), | intent(in), | dimension(:) | :: | dir |
An N-element array defining the search direction. |
|
| real(kind=real64), | intent(out), | dimension(:) | :: | x |
An N-element array where the updated solution point will be written. |
|
| real(kind=real64), | intent(in), | optional | :: | fold |
An optional input that provides the function value at xold. If not provided, fcn is evalauted at xold. |
|
| real(kind=real64), | intent(out), | optional | :: | fx |
The value of the function as evaluated 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. |
Sets a distance factor defining the minimum distance along the search direction vector is practical.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_search), | intent(inout) | :: | this |
The line_search object. |
||
| real(kind=real64), | intent(in) | :: | x |
The distance factor. A value of 1 indicates the full length of the vector. Notice, this value is restricted to lie in the set [0.1, 1.0). |
Sets the maximum number of function evaluations allowed during a single line search.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_search), | intent(inout) | :: | this |
The line_search object. |
||
| integer(kind=int32), | intent(in) | :: | x |
The maximum number of function evaluations. |
Sets the scaling of the product of the gradient and direction vectors such that , where is the search direction vector, is the gradient vector, and is the scaling factor.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_search), | intent(inout) | :: | this |
The line_search object. |
||
| real(kind=real64), | intent(in) | :: | x |
The scaling factor. |