Calls an algorithm from the NAG Library.
Options
PRINT = string token |
Controls printed output (algorithms , monitoring ); default * i.e. none |
---|---|
NAME = string token |
Name of the algorithm to call; default * i.e. none |
ZDZ = string token |
Value to be given to zero divided by zero in Genstat expressions defined in the ARGUMENTS (missing , zero ); default miss |
TOLERANCE = scalar |
If the scalar is non missing, this defines the smallest non-zero number for use in Genstat expressions defined in the ARGUMENTS ; otherwise it accesses the default value, which is defined automatically for the computer concerned |
SEED = scalar |
Seed to use for any random number generation in Genstat expressions defined in the ARGUMENTS ; default 0 |
INDEX = scalar |
If a Genstat expression defined in the ARGUMENTS has a list of structures before the assignment operator (= ), the scalar indicates the position within the list of the structure currently being evaluated |
Parameters
ARGUMENTS = pointer |
Arguments for the call |
---|---|
RESULT = scalar |
Stores the result for algorithms that take the form of a function rather than a subroutine |
Description
NAG
provides access to some specific algorithms in the Numerical Algorithms Group’s subroutine libraries. You can set option PRINT=algorithms
to list those that are currently available. The other setting monitoring
gives additional monitoring from algorithms like D02KDF
that can give additional monitoring information from a MONIT
subroutine. (NAG
includes a custom version of MONIT
for each routine, that provides all the relevant information.)
The name of the algorithm is specified using the NAME
option. It is best to give the name in full, as the NAG names may not be distinct in their first four characters and so the standard abbreviation rules (e.g. that four characters are sufficient) cannot be guaranteed in all future releases. The arguments for the call are supplied, in a pointer, using the ARGUMENTS
parameter. These must be in the order required by the algorithm, and input arguments must be of the correct type (number or string) and shape (vector, matrix and so on); for details see the relevant NAG documentation. Output arguments are defined automatically from the results. The RESULT
parameter saves the result if the NAG algorithm is a function rather than a subroutine.
Some NAG algorithms may have an argument that is an external function or subroutine that performs a calculation. This can be specified for the NAG
directive by supplying a pointer whose first element defines the calculation using a Genstat expression, or a pointer to several Genstat expressions. With an external function, the next element of the pointer should be the Genstat data structure that receives the result of the calculation in the expression(s). The remaining elements should be the Genstat data structures that correspond to the arguments of the external function or subroutine, in the order in which they occur in the definition of the function or subroutine in the NAG documentation. The expression or expressions are evaluated within the NAG
directive by making a call to the CALCULATE
directive. The ZDZ
, TOLERANCE
, SEED
and INDEX
options of the NAG
directive can be used to set the corresponding options of CALCULATE
for the call.
Options: PRINT
, NAME
, ZDZ
, TOLERANCE
, SEED
, INDEX
.
Parameters: ARGUMENTS
, RESULT
.
See also
Directives: POINTER
, EXPRESSION
, CALCULATE
, FITNONLINEAR
, FLRV
, QRD
, SVD
.
Commands for: Calculations and manipulation.
Example
" Example 1:4.13a " VARIATE [VALUES=1,1,2,2,3,4,4,5,5,8,8,8,8,11,11,12,12,15,17,22,23,\ 6,6,6,6,7,9,10,10,11,13,16,17,19,20,22,23,25,32,32,34,35] Time & [VALUES=24(0),1,0,1,0,1,1,0,0,1,1,1,0,0,1,1,1,1,1] Censor FACTOR [LABELS=!t(control,'6-mercaptopurine'); VALUES=21(1,2)] Treat TEXT [VALUE='N'] OFFSET VARIATE T,IC; VALUE=Time,Censor CALCULATE N = NVALUES(T) SCALAR M,NS; VALUE=1,0 MATRIX [ROWS=N; COLUMNS=M] Z CALCULATE Z$[*;1] = Treat .EQ. 2 CALCULATE LDZ = NVALUES(Z) VARIATE [VALUES=1] ISZ CALCULATE IP = SUM(ISZ) VARIATE [VALUES=1] OMEGA,ISI VARIATE [NVALUES=IP] SE,SC VARIATE [VALUES=0] B SYMMETRIC [ROWS=IP] COV VARIATE [NVALUES=N] RES SCALAR TOL,MAXIT,IPRINT; VALUE=1.E-6,50,0 VARIATE WK VARIATE IWK POINTER [VALUES=OFFSET,N,M,NS,Z,LDZ,ISZ,IP,T,\ IC,OMEGA,ISI,DEV,B,SE,SC,COV,RES,ND,\ TP,SUR,NDMAX,TOL,MAXIT,IPRINT,WK,IWK,IFAIL] Args NAG [NAME=G12BAF] Args PRINT DEV,ND,IFAIL PRINT B,SE