The ExtCallNode structure points to an ExternalFunc structure and holds a list of instances which are tied to the arguments in the calling ASCEND statement. -- JP
It seems that we shouldn't be accessing this structure at solve-time: the ExtRelCache object contains a lot of pre-processed stuff that makes evaluating black box functions easier (probably glass box too?) -- JP
Complete documentation of compiler/extcall.h.
In the context of an ExtCallNode (at least in the case of black box relations) the 'subject' is the output variable for the particular relation within the black box. There is 'relation' created for each output variable, as required for the [eye(NxN), ones(NxM)] submatrix in the jacobian. -- JP
#include <utilities/ascConfig.h>
#include <utilities/ascMalloc.h>
#include <general/list.h>
#include <compiler/extfunc.h>
#include "compiler.h"
#include "instance_enum.h"
Include dependency graph for extcall.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Data Structures | |
| struct | ExtCallNode |
Defines | |
| #define | ExternalCallExtFunc(ext) ExternalCallExtFuncF(ext) |
| #define | ExternalCallArgList(ext) ExternalCallArgListF(ext) |
| #define | ExternalCallVarIndex(ext) ExternalCallVarIndexF(ext) |
| #define | ExternalCallNodeStamp(ext) ExternalCallNodeStampF(ext) |
Functions | |
| ExtCallNode * | CreateExtCall (struct ExternalFunc *efunc, struct gl_list_t *args, struct Instance *subject, struct Instance *data) |
| void | DestroyExtCall (struct ExtCallNode *ext, struct Instance *relinst) |
| Instance * | GetSubjectInstance (struct gl_list_t *arglist, unsigned long varndx) |
| unsigned long | GetSubjectIndex (struct gl_list_t *arglist, struct Instance *subject) |
| ASC_DLLSPEC unsigned long | CountNumberOfArgs (struct gl_list_t *arglist, unsigned long start, unsigned long end) |
| gl_list_t * | LinearizeArgList (struct gl_list_t *arglist, unsigned long start, unsigned long end) |
| gl_list_t * | CopySpecialList (struct gl_list_t *list) |
| gl_list_t * | DeepCopySpecialList (struct gl_list_t *list, CopyFunc copy) |
| void | DestroySpecialList (struct gl_list_t *list) |
| void | DeepDestroySpecialList (struct gl_list_t *list, DestroyFunc dtor) |
| ExternalFunc * | ExternalCallExtFuncF (struct ExtCallNode *ext) |
| gl_list_t * | ExternalCallArgListF (struct ExtCallNode *ext) |
| Instance * | ExternalCallDataInstance (struct ExtCallNode *ext) |
| unsigned long | ExternalCallVarIndexF (struct ExtCallNode *ext) |
| Instance * | ExternalCallVarInstance (struct ExtCallNode *ext) |
| int | ExternalCallNodeStampF (struct ExtCallNode *ext) |
| void | SetExternalCallNodeStamp (struct ExtCallNode *ext, int nodestamp) |
1.5.1