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
Synopsis | Overflow may occur if the function attempts to scale the polynomial coefficients. |
Description | In rare circumstances overflow may be observed if . |
Severity | Non-critical |
Issue Since Mark | 7 |
Workaround | Set argument . |
Synopsis | d06acc returns error for some boundary meshes due to an internal scaling issue. |
Description | d06acc returns 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 and . |
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. |
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. |
Synopsis | and were not correctly filled by the presolver. |
Description | The arrays and were not correctly filled when the problem was entirely solved by the presolver. It now returns the correct values.
The optional parameter 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 to hold the primal and dual objective in this case and recompute it as and , respectively. |
Synopsis | e04mtc does not report the correct solution when or more columns are proportional to each other in the constraint matrix. |
Description | e04mtc does not report the correct solution when 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 . This may slow down the solver depending on the problem. |
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 . |
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. |
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 . This may slow down the solver depending on the problem. |
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 . This may slow down the solver depending on the problem. |
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 for e04mtc and for e04ptc. |
Synopsis | Optional parameters and are not handled correctly. |
Description | Functions e04nrc, e04vkc and e04wec do not handle optional parameters and correctly. Specifying does not alter the behaviour of subsequent functions in the suite, and specifying 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 or . |
Synopsis | Information about the last constraint might not be printed. |
Description | If the problem has a nonlinear objective function without a linear part and , 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. |
Synopsis | When is returned, the expected value of in the error message may be wrongly reported. |
Description | When is returned, the expected value of 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. |
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. |
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 , 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. |
Synopsis | f16qfc, if called with that violates minimum contraints, will produce a segmentation fault. |
Description | f16qfc, if called with that violates minimum contraints, will produce a segmentation fault. |
Severity | Critical |
Issue Since Mark | 7 |
Fixed at Mark | 28 |
Workaround | Call f16qfc with that meets the documented minimum contraint. |
Synopsis | Incorrect Frobenius norm returned in some cases. |
Description | When calling one of the functions: f16rdc, f16rec, f16udc, f16uec, f16ufc and f16ugc with and , 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 argument is set to and the argument is flipped, i.e., from to or vice versa. |
Synopsis | f16smc returns wrong update of when is stored in row major order and is to be conjugated. |
Description | When f16smc is called with and , is updated as though . |
Severity | Critical |
Issue Since Mark | 8 |
Fixed at Mark | 28 |
Workaround | Call f16smc with and conjugate prior to call. |
Synopsis | f16tac stops program execution when called with . |
Description | f16tac, when called with does not return error code , but terminates program execution. |
Severity | Critical |
Issue Since Mark | 8 |
Fixed at Mark | 28 |
Workaround | Call f16tac with . |
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 and ; for row-ordered matrices, and should be switched. |
Synopsis | If the first row or column of the weight matrix 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 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 ) to one of the elements in the first row/column. |
Synopsis | When , output arguments and are not initialized. |
Description | When , output arguments and are not initialized. These values relate to a regression constant that is only relevant in the case. However, the code for should initialize them to . 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 (but only in the case) immediately after calling this function. |
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 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 term.
For example, a model specified using:
V1 + V2 / SUBJECT = V3 V4 + V5 / SUBJECT = V6would not trigger the error, but one specified using: V1 + V2 V4 + V5 / SUBJECT = V6would. The error is not triggered when there is only a single random statement, so a model specified using just
V1 + V2will 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 term. If the required model is of the form:
V1 + V2 V4 + V5 / SUBJECT = V6then you can specify an equivalent model by using: V1 + V2 / SUBJECT = DUMMY V4 + V5 / SUBJECT = V6where the variable |
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. |
Synopsis | The wrong value for is returned when is large. |
Description | In g08ckc and g08clc the value returned for the upper tail probability is wrong when the calculated Anderson-Darling test statistic is large. In the case of g08ckc, when the returned value of should be zero; in the case of g08clc, when the returned value of should be . |
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); |
Synopsis | g13fac may return a negative value as the estimate of the last parameter (i.e., ) for a subset of models. |
Description | g13fac can result in a negative value for the estimate of the last parameter (i.e., ) or, if , the last parameter (i.e., ).
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 , 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 |
Synopsis | When the information returned in and/or may be incorrect. |
Description | The information returned in and/or may be incorrect in cases where 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. |
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 and as lower and upper bound, respectively. |
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. |