Forms lists of arguments involved in an expression.
Options
EXPRESSION = expression structure |
Expression whose arguments are required |
---|---|
NRESULTS = scalar |
Number of results generated by the expression |
NCALCULATIONS = scalar |
Number of calculations in the expression |
Parameters
ICALCULATION = scalars |
The calculation from which to save the result and arguments |
---|---|
RESULT = dummies |
Stores the result structure for calculation ICALCULATION |
ARGUMENTS = pointers |
Stores the arguments in calculation ICALCULATION |
Description
The FARGUMENTS
directive allows you to access the data structures involved in a Genstat expression. For example, the expression
P = R / N
defines a calculation involving the data structures R
and N
, and stores the results in the data structure P
. An expression can contain lists, to define several calculations. For example,
P1,P2 = R1,R2 / N1,N2
has two results, P1
and P2
, that are calculated as R1/N1
and R2/N2
respectively. Some expressions may have no results, for example
LOG(P1/(1-P1))
This could then be used as part of a CALCULATE
statement, as in the following program
EXPRESSION [VALUE=LOG(P1/(1-P1))] Transformation
CALCULATE Y = #Transformation
If you are writing a procedure that takes an expression as one of its inputs, you may want to know what results it is generating and what data structures it is using to calculate them. The FARGUMENTS
allows you to find this out.
The expression to study is specified by the EXPRESSION
option. The NRESULTS
option can save the number of results, and the NCALCULATIONS
option can save the number of calculations. The parameters of FARGUMENTS
allow you to save information about each of the calculations in the expression: the ICALCULATION
parameter specifies the number of the calculation, the RESULT
parameter can specify a dummy to be set to the structure that is given the result, and the ARGUMENTS
parameter can specify a pointer to save the arguments.
Options: EXPRESSION
, NRESULTS
, NCALCULATIONS
.
Parameters: ICALCULATION
, RESULT
, ARGUMENTS
.
See also
Directives: EXPRESSION
, DUMMY
, POINTER
, SCALAR
, FCLASSIFICATION
.
Commands for: Calculations and manipulation.
Example
" Example 1:4.8.2 " EXPRESSION Sum; VALUE=!e(S=A+B+C+D) FARGUMENTS [EXPRESSION=Sum] 1; RESULT=SumRes; ARGUMENTS=SumArgs PRINT !p(SumRes) PRINT SumArgs SCALAR L1,L2,P1,P2 EXPRESSION Transformation; VALUE=!e(L1,L2=LOG(P1,P2/(1-P1,P2))) FARGUMENTS [EXPRESSION=Transformation; NRESULTS=Nt] FARGUMENTS [EXPRESSION=Transformation] 1...Nt; RESULT=TRes[1...Nt];\ ARGUMENTS=TArgs[1...Nt] FOR [NTIMES=Nt; INDEX=i] PRINT !p(TRes[i]) PRINT TArgs[i] PRINT TArgs[i][] ENDFOR