Known Issues for the NAG Library CL Interface
This document reflects all reported and resolved issues that affect recent releases of the NAG Library CL Interface.
Some of these issues may have been fixed at intermediate "point" releases of the Library, while other fixes are scheduled for incorporation at future releases. For library Marks where those fixes are not yet incorporated, a workaround for the known issue is provided wherever possible.
To find the Mark and point release number of your library, call NAG function  a00aac( ).

For issues that affect releases of other interfaces, please also see


Order the issues by   

c02agc

Synopsis

Overflow may occur if the function attempts to scale the polynomial coefficients.

Description

In rare circumstances overflow may be observed if scale = Nag_TRUE .

Severity

Non-critical

Issue Since Mark

7

Workaround

Set argument scale = Nag_FALSE .

d01wcc

Synopsis

Heap corruption when maxpts constraint is unmet.

Description

If function d01wcc is called with argument values that violate documented constraints, the function may terminate in an unfriendly way, such as a segmentation fault.

Severity

Critical

Issue Since Mark

6

Fixed at Mark

31.0

Workaround

The workaround is to make sure that arguments passed do not violate documented constraints by using checks prior to calling d01wcc.

d06acc

Synopsis

d06acc returns fail . code = NE_MESH_ERROR error for some boundary meshes due to an internal scaling issue.

Description

d06acc returns fail . code = NE_MESH_ERROR error for some boundary meshes due to an internal scaling issue.

Severity

Non-critical

Issue Since Mark

7

Fixed at Mark

28.4

Workaround

Scale input boundary mesh prior to calling d06acc so that = 0 and = 1 .

e01shc

Synopsis

e01shc will occasionally incorrectly identify a point as being outside the region defined by the interpolant.

Description

e01shc will occasionally incorrectly identify a point as being outside the region defined by the interpolant. This leads to the function value being extrapolated rather than interpolated and can lead to incorrect results.

Severity

Non-critical

Issue Since Mark

26.0

Fixed at Mark

27.1

Workaround

None.

e04ggc

Synopsis

In some cases, the solver hangs indefinitely at an iteration.

Description

In some cases, when certain variable lower bounds are not present, the solver might hang indefinitely due to an infinite loop during the line search stage.

Severity

Critical

Issue Since Mark

27.1

Fixed at Mark

30.3

Workaround

None.

e04mtc

Synopsis

stats

and rinfo were not correctly filled by the presolver.

Description

The arrays stats and rinfo were not correctly filled when the problem was entirely solved by the presolver. It now returns the correct values.

The optional parameter Print Solution now correctly writes the linear constraints dual variables when no bounds are defined on the variables.

Severity

Non-critical

Issue Since Mark

26.1

Fixed at Mark

27

Workaround

Don't rely on rinfo 0 , rinfo 1 to hold the primal and dual objective in this case and recompute it as c x and b y , respectively.

e04mtc

Synopsis

e04mtc does not report the correct solution when 3 or more columns are proportional to each other in the constraint matrix.

Description

e04mtc does not report the correct solution when 3 or more columns are proportional to each other in the constraint matrix. In such a case, the solution reported may be infeasible.

Severity

Non-critical

Issue Since Mark

26.1

Fixed at Mark

27

Workaround

A workaround is to disable the more complex presolve operations by setting the optional parameter LP Presolve = BASIC . This may slow down the solver depending on the problem.

e04mtc

Synopsis

In some very rare cases, the solution reported presents big violations on a small number of linear constraints.

Description

In some very rare cases, the solution reported presents big violations on a small number of linear constraints.

Severity

Non-critical

Issue Since Mark

26.1

Fixed at Mark

27.1

Workaround

A workaround is to deactivate the more complex presolver operations with the optional parameter LP Presolve = BASIC .

e04mtc

Synopsis

In some very rare cases, e04mtc reports problem infeasibility for a feasible problem.

Description

In some very rare cases, the solver reports problem infeasibility when there are numerical difficulties.

Severity

Non-critical

Issue Since Mark

26.1

Fixed at Mark

28.6

Workaround

Unfortunately there is no convenient workaround.

e04mtc

Synopsis

In some very rare cases, at presolve phase the solver declares unboundedness on a bounded problem.

Description

In some very rare cases, especially when there are a large amount of singleton variables, the solver might report unbounded error message on a bounded problem.

Severity

Non-critical

Issue Since Mark

26.1

Fixed at Mark

29.0

Workaround

A workaround is to deactivate the more complex presolver operations with the optional parameter LP Presolve = BASIC . This may slow down the solver depending on the problem.

e04mtc

Synopsis

In some cases the solver declares dual infeasibility during presolving for feasible and bounded problems.

Description

For a bounded problem, the solver reports dual infeasibility during dominated columns removal at the presolving stage.

Severity

Non-critical

Issue Since Mark

26.1

Fixed at Mark

29.1

Workaround

A workaround is to deactivate the more complex presolver operations with the optional parameter LP Presolve = BASIC . This may slow down the solver depending on the problem.

e04mtc and e04ptc

Synopsis

Infeasible bounds defined by e04rjc of a variable are ignored and infeasibility is not reported.

Description

When infeasible bounds are defined by e04rjc for a variable, instead of reporting problem infeasibility, the bounds are overridden and wrong solution may be reported.

Severity

Non-critical

Issue Since Mark

26.1

Fixed at Mark

27.1

Workaround

A workaround is to deactivate the more complex presolver operations with the optional parameter LP Presolve = BASIC for e04mtc and SOCP Presolve = BASIC for e04ptc.

e04nrc, e04vkc and e04wec

Synopsis

Optional parameters List and Nolist are not handled correctly.

Description

Functions e04nrc, e04vkc and e04wec do not handle optional parameters List and Nolist correctly. Specifying List does not alter the behaviour of subsequent functions in the suite, and specifying Nolist erroneously reports an error.

Severity

Non-critical

Issue Since Mark

8

Fixed at Mark

27.3

Workaround

Function e04nsc should be used instead to set optional parameters List or Nolist .

e04vhc

Synopsis

Information about the last constraint might not be printed.

Description

If the problem has a nonlinear objective function without a linear part and objrow < nf , the last constraint is not printed in the final information about the solution (Rows section).

Severity

Non-critical

Issue Since Mark

8

Fixed at Mark

26

Workaround

None.

e05kbc

Synopsis

When fail . code = NE_REF_MATCH is returned, the expected value of nvar in the error message may be wrongly reported.

Description

When fail . code = NE_REF_MATCH is returned, the expected value of nvar in the error message may be wrongly reported. This incorrect behaviour may occur when the internal solver works with a different number of variables than what is declared during handle initialization, e.g., when some variables are fixed by the user.

Severity

Non-critical

Issue Since Mark

28.3

Fixed at Mark

30.2

Workaround

None.

f11bec, f11bsc, f11gec and f11gsc

Synopsis

Multithreaded versions of the functions f11bec, f11bsc, f11gec and f11gsc may produce slightly different results when run on multiple threads.

Description

Multithreaded versions of the functions f11bec, f11bsc, f11gec and f11gsc may produce slightly different results when run on multiple threads, e.g., the number of iterations to solution and the computed matrix norms and termination criteria reported by the associated monitoring functions. A bug affecting f11bec and f11gec has been fixed, and parallel vector dot products have been modified in all functions to improve consistency of results.

Severity

Non-critical

Issue Since Mark

26

Fixed at Mark

27.1

Workaround

None.

f16qec and f16tec

Synopsis

f16qec and f16tec reference diagonal elements when unit diagonal entries are assumed.

Description

f16qec and f16tec reference and copy diagonal elements when unit diagonal entries are assumed.

Severity

Critical

Issue Since Mark

7

Fixed at Mark

28

Workaround

Nothing needs to be done unless diagonal entries of the target matrix contain useful data prior to a call of f16qec or f16tec with diag = Nag_UnitDiag , in which case the useful data should be saved and copied back to the diagonal of the target matrix after the call to either f16qec or f16tec.

f16qfc

Synopsis

f16qfc, if called with pdb that violates minimum contraints, will produce a segmentation fault.

Description

f16qfc, if called with pdb that violates minimum contraints, will produce a segmentation fault.

Severity

Critical

Issue Since Mark

7

Fixed at Mark

28

Workaround

Call f16qfc with pdb that meets the documented minimum contraint.

f16rdc, f16rec, f16udc, f16uec, f16ufc and f16ugc

Synopsis

Incorrect Frobenius norm returned in some cases.

Description

When calling one of the functions: f16rdc, f16rec, f16udc, f16uec, f16ufc and f16ugc with order = Nag_RowMajor and norm = Nag_FrobeniusNorm , the returned norm can be incorrect.

Severity

Critical

Issue Since Mark

23

Fixed at Mark

28

Workaround

These functions will return the correct norm if the order argument is set to Nag_ColMajor and the uplo argument is flipped, i.e., from Nag_Upper to Nag_Lower or vice versa.

f16smc

Synopsis

f16smc returns wrong update of A when a is stored in row major order and y is to be conjugated.

Description

When f16smc is called with order = Nag_RowMajor and conj = Nag_Conj , A is updated as though conj = Nag_NoConj .

Severity

Critical

Issue Since Mark

8

Fixed at Mark

28

Workaround

Call f16smc with conj = Nag_NoConj and conjugate y prior to call.

f16tac

Synopsis

f16tac stops program execution when called with pda < n .

Description

f16tac, when called with pda < n does not return error code fail . code = NE_INT_2 , but terminates program execution.

Severity

Critical

Issue Since Mark

8

Fixed at Mark

28

Workaround

Call f16tac with pda max 1 , n .

f16tfc

Synopsis

f16tfc returns incorrect results when computing a transposed copy of a matrix.

Description

f16tfc returns incorrect results when computing a transposed copy of a matrix.

Severity

Critical

Issue Since Mark

7

Fixed at Mark

28

Workaround

Call f01cwf with alpha = one and beta = zero ; for row-ordered matrices, m and n should be switched.

g02ajc

Synopsis

If the first row or column of the weight matrix h consists only of zeros, then the function will fail to find the nearest correlation matrix for that weight matrix.

Description

An error can occur when the first row or column of the weight matrix h consists only of zeros, then the function will fail to find the nearest correlation matrix for that weight matrix.

Severity

Critical

Issue Since Mark

25

Fixed at Mark

30.1

Workaround

The workaround is to apply a small weight (relative to other non-zero weights given in h ) to one of the elements in the first row/column.

g02cac

Synopsis

When mean = Nag_AboutZero , output arguments a and a_serr are not initialized.

Description

When mean = Nag_AboutZero , output arguments a and a_serr are not initialized. These values relate to a regression constant that is only relevant in the mean = Nag_AboutMean case. However, the code for mean = Nag_AboutZero should initialize them to 0.0 . This was not done, allowing previously set values or random results to be erroneously returned.

Severity

Non-critical

Issue Since Mark

7

Fixed at Mark

27.3

Workaround

The safest solution is to manually set these to 0.0 (but only in the mean = Nag_AboutZero case) immediately after calling this function.

g02jfc

Synopsis

A segmentation fault is likely to occur if a model with multiple random statements is supplied to the function, where at least one of those statements does not have a Subject term.

Description

A segmentation fault is likely to occur if a model with multiple random statements is supplied to the function, where at least one of those statements does not have a Subject term.

For example, a model specified using:

V1 + V2 / SUBJECT = V3
V4 + V5 / SUBJECT = V6

would not trigger the error, but one specified using:

V1 + V2
V4 + V5 / SUBJECT = V6

would.

The error is not triggered when there is only a single random statement, so a model specified using just

V1 + V2

will not trigger the error.

Severity

Critical

Issue Since Mark

27

Fixed at Mark

27.1

Workaround

A workaround to this issue is to always supply a Subject term. If the required model is of the form:

V1 + V2
V4 + V5 / SUBJECT = V6

then you can specify an equivalent model by using:

V1 + V2 / SUBJECT = DUMMY
V4 + V5 / SUBJECT = V6

where the variable DUMMY has a single level, and always takes a value of one. This will require adding the variable DUMMY to your dataset.

Chapter G05

Synopsis

Memory leak reported from CL interface on Windows from checking tools.

Description

A during-execution memory leak can be reported from checking tools on Windows when running a multi-threaded program calling d01xbc.

Severity

Critical

Issue Since Mark

5

Fixed at Mark

28

Workaround

Ignore warnings.

g08ckc and g08clc

Synopsis

The wrong value for p is returned when aa2 is large.

Description

In g08ckc and g08clc the value returned for the upper tail probability p is wrong when the calculated Anderson-Darling test statistic aa2 is large. In the case of g08ckc, when aa2 > 153.4677 the returned value of p should be zero; in the case of g08clc, when aa2 > 10.03 the returned value of p should be exp - 14.360135 .

Severity

Critical

Issue Since Mark

23

Workaround

Workaround for g08ckc:

Call g08ckc(...);
If (aa2 > 153.4677) p = 0.0;

Workaround for g08clc:

Call g08clc(...);
If (aa2 > 10.03) p = exp(-14.360135);

g13fac

Synopsis

g13fac may return a negative value as the estimate of the last β parameter (i.e., β p ) for a subset of models.

Description

g13fac can result in a negative value for the estimate of the last β parameter (i.e., β p ) or, if p = 0 , the last α parameter (i.e., α q ).

This issue only affects a subset of models that have normally distributed errors and do not include an asymmetry term.
If the function did not return a negative value as the estimate of the last β parameter (or, if p = 0 , the last α parameter), then that particular model was not affected by the issue.

Severity

Critical

Issue Since Mark

7

Fixed at Mark

27

Workaround

None

g22ydc

Synopsis

When what = Nag_VarianceComponent the information returned in plab and/or vinfo may be incorrect.

Description

The information returned in plab and/or vinfo may be incorrect in cases where what = Nag_VarianceComponent and the underlying linear mixed effects regression model has a random variable, with a single level (so either binary or continuous), that only takes the value zero.

Severity

Non-critical

Issue Since Mark

27.0

Workaround

The work around is to drop the term from the model, as it does not contribute. For example, if the random part of your model was specified as: V1 + V2 / SUBJECT=V3 and the variable V2 was a continuous variable, that only takes a value of zero in the data, then this is equivalent to re-specifying the model using: V1 / SUBJECT=V3.

h02bkc

Synopsis

rinfo was not correctly filled with the primal objective value and the dual objective bound when fixed variable presents.

Description

Primal objective value and the dual objective bound were not returned correctly in rinfo due to the removal of fixed variables from the model. It now returns the correct values.

Severity

Non-critical

Issue Since Mark

29.3

Fixed at Mark

31.0

Workaround

Recompute primal objective value as c x .

h02dac

Synopsis

In some cases, solver returns inaccurate solution when there are binary variables.

Description

When there are binary variables, the accuracy of the solution will be influenced by the initial values. The solver could return inaccurate solution.

Severity

Non-critical

Issue Since Mark

25

Fixed at Mark

29.1

Workaround

The work around is to use integer variables with 0 and 1 as lower and upper bound, respectively.

Metis external package files use large amount of thread local storage (TLS)

Synopsis

Thread Local Storage default limit was exceeded for delay loaded shared library.

Description

A fair amount of thread local storage had been allocated by an auxiliary function which has now been updated to use a very small amount of thread local storage. Prior to the update, this only affected the case where the shared version of the Nag Library was delay loaded, since this assumed a small default maximum amount of thread local storage, which was in fact exceeded.

The issue had been present since the introduction of the auxiliary function at Mark 26.1. From Mark 28.6, the amount of thread local storage used is very small and this is no longer an issue.

Severity

Non-critical

Issue Since Mark

26.1

Fixed at Mark

28.6

Workaround

None.