XSLPgetuserfunc
XSLPgetuserfunc |
Purpose
Retrieve the type and parameters for a user function
Synopsis
int XPRS_CC XSLPgetuserfunc(XSLPprob Prob, int nSLPUF, char *xName, int *ArgType, int *ExeType, char *Param1, char *Param2, char *Param3);
Arguments
Prob
|
The current SLP problem.
|
||||||||||||||||||
nSLPUF
|
The number of the user function. This always counts from 1.
|
||||||||||||||||||
xName
|
Character string to receive the null-terminated external name of the user function. May be
NULL if not required. Note that the external name is not the name used in written formulae, which is created by the
XSLPaddnames function if required.
|
||||||||||||||||||
ArgType
|
Address of an integer to receive the bitmap specifying existence and type of arguments:
May be
NULL if not required.
|
||||||||||||||||||
ExeType
|
Address of an integer to receive the bitmap holding the type of function:
May be
NULL if not required.
|
||||||||||||||||||
Param1
|
Character buffer to hold the first parameter (
FILE). May be
NULL if not required.
|
||||||||||||||||||
Param2
|
Character buffer to hold the second parameter (
ITEM). May be
NULL if not required.
|
||||||||||||||||||
Param3
|
Character buffer to hold the third parameter (
HEADER). May be
NULL if not required.
|
Example
The following example retrieves the argument type and external name for user function number 3 and prints a simplified description of the function prototype.
int ArgType; char ExtName[60]; XSLPgetuserfunc(Prob, 1, ExtName, &ArgType, NULL, NULL, NULL, NULL); printf("\nFunction is %s(",ExtName); for (i=0;i<6;i++) { if (i) printf(","); if (ArgType & (07 << i*3)) printf("Arg%d",i+1); } printf(")");;
Further information
The following constants are provided for setting evaluation and derivative bits in ExeType:
Setting bit 3: XSLP_RECALC
Setting bit 4: XSLP_TOLCALC
Setting bit 6: XSLP_2DERIVATIVE
Setting bit 7: XSLP_1DERIVATIVE
Setting bit 9: XSLP_INSTANCEFUNCTION
Setting bit 24: XSLP_MULTIVALUED
Setting bit 28: XSLP_NODERIVATIVES
Related topics