Creating C++ Interfaces for the NAG Library: A Work in Progress
- The interfaces should not impose a rigid data structure
- ideally they should work with any widely used data structure.
- The interfaces should be as simplified as possible
- without losing any useful functionality.
- The interfaces will use exception type error handling
- with the caveat that they can be turned off, if required.
- The interfaces will work with any standard NAG Library
- and hence portable across OS and compiler (for any combinations we implement the Library on).
- The majority of any code produced must be automatically generated.
- The interfaces must be inferable from existing information.
- With over routines in the NAG Library it is not practical to hand write each wrapper or hand tune each interface.
- The interfaces will consist of
thinwrappers, with all algorithmic work being done by the NAG Library Engine.
- The upshot of this is that any input types must (eventually) be ANSI C compatible when being passed to the Engine.
- g01gb: Computes probabilities for the non-central Student's -distribution.
- c05ay: Zero of continuous function in a given interval, Brent algorithm.
- d01fb: Multidimensional Gaussian quadrature over hyper-rectangle.
- e01ba: Interpolating functions, cubic spline interpolant, one variable.
- e04mt: Linear programming (LP), sparse, interior point method (IPM).
- e04ra: Initialization of a handle for the NAG optimization modelling suite for problems, such as, linear programming (LP), quadratic programming (QP), nonlinear programming (NLP), least squares (LSQ) problems, linear semidefinite programming (SDP) or SDP with bilinear matrix inequalities (BMI-SDP).
- e04rf: Define a linear or a quadratic objective function to a problem initialized by e04ra.
- e04rj: Define a block of linear constraints to a problem initialized by e04ra.
- e04rz: Destroy the problem handle initialized by e04ra and deallocate all the memory used.
- e04zm: Option setting routine for the solvers from the NAG optimization modelling suite.
- e04uc: Nonlinear programming (NLP), dense, active-set SQP method, using function values and optionally first derivatives, recommended.
which is small enough to be manageable, but large enough to cover a number of different interface features: scalars, arrays, callbacks, optional arguments etc. The functionality covered by these routines should also be sufficient to allow some non-trivial problems to be solved.