Developer Reference

Contents

?trnlspbc_init

Initializes the solver of nonlinear least squares problem with linear (boundary) constraints.

Syntax

MKL_INT
strnlspbc_init
(
_TRNSPBC_HANDLE_t
*
handle
,
const
MKL_INT
*
n
,
const
MKL_INT
*
m
,
const
float
*
x
,
const
float
*
LW
,
const
float
*
UP
,
const
float
*
eps
,
const
MKL_INT
*
iter1
,
const
MKL_INT
*
iter2
,
const
float
*
rs
);
MKL_INT
dtrnlspbc_init
(
_TRNSPBC_HANDLE_t
*
handle
,
const
MKL_INT
*
n
,
const
MKL_INT
*
m
,
const
double
*
x
,
const
double
*
LW
,
const
double
*
UP
,
const
double
*
eps
,
const
MKL_INT
*
iter1
,
const
MKL_INT
*
iter2
,
const
double
*
rs
);
Description
The
?trnlspbc_init
routine initializes the solver.
After initialization, all subsequent invocations of the
?trnlspbc_solve
routine should use the values of the handle returned by
?trnlspbc_init
. This handle stores internal data, including pointers to the arrays
x
,
LW
,
UP
, and
eps
. It is important to not move or deallocate these arrays until after calling the
?trnlspbc_delete
routine.
The
eps
array contains a number indicating the stopping criteria:
eps
Value
Description
0
Δ <
eps
[0]
1
||
F
(
x
)||
2
<
eps
[1]
2
The Jacobian matrix is singular.
||
J
(
x
)
[
m
*(
j
-1)...
m
*
j
-1]
||
2
<
eps
[2]
,
j
= 1, ...,
n
3
||s||
2
<
eps
[3]
If eps
[3]
> 0, an extra scaling is applied to ‘s’ after it has been selected, to ensure that it does not leave the specified domain, but scales it down to not cross the boundary. This preserves the solution inside the boundary, but may result in getting stuck in a local minimum on the boundary and exiting early due to this stopping criteria
If eps
[3]
< 0, the previous behavior is maintained, which may result in the solution, x, leaving the boundary. If this occurs, try starting over with a different initial condition.
4
||
F
(
x
)||
2
- ||
F
(
x
) -
J
(
x
)
s
||
2
<
eps
[4]
5
The trial step precision. If
eps
[5]
= 0, then the trial step meets the required precision (
1.0*10
-10
).
Note:
  • J
    (
    x
    )
    is the Jacobian matrix.
  • Δ
    is the trust-region area.
  • F
    (
    x
    )
    is the value of the functional.
  • s
    is the trial step.
Input Parameters
n
Length of
x
.
m
Length of
F
(
x
).
x
Array of size
n
. Initial guess. A reference to this array is stored in handle for later use and modification by
?trnlspbc_solve
.
LW
Array of size
n
.
Contains low bounds for
x
(
lw
i
<
x
i
). A reference to this array is stored in handle for later use by
?trnlspbc_solve
.
UP
Array of size
n
.
Contains upper bounds for
x
(
up
i
>
x
i
). A reference to this array is stored in handle for later use by
?trnlspbc_solve
.
eps
Array of size 6; contains stopping criteria.
See the values in the Description section.
A reference to this array is stored in handle for later use by
?trnlspbc_solve
.
iter1
Specifies the maximum number of iterations.
iter2
Specifies the maximum number of iterations of trial step calculation.
rs
Definition of initial size of the trust region (boundary of the trial step). The recommended minimum value is 0.1, and the recommended maximum value is 100.0. Based on your knowledge of the objective function and initial guess you can increase or decrease the initial trust region. It can influence the iteration process, for example, the direction of the iteration process and the number of iterations. If you set
rs
to 0.0, the solver uses the default value, which is 100.0.
Output Parameters
handle
Type
_TRNSPBC_HANDLE_t
.
res
Informs about the task completion.
  • res
    =
    TR_SUCCESS
    - the routine completed the task normally.
  • res
    =
    TR_INVALID_OPTION
    - there was an error in the input parameters.
  • res
    =
    TR_OUT_OF_MEMORY
    - there was a memory error.
TR_SUCCESS
,
TR_INVALID_OPTION
, and
TR_OUT_OF_MEMORY
are defined in the
mkl_rci.h
include file.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804