|
|
| (194 intermediate revisions by 5 users not shown) |
| Line 1: |
Line 1: |
| ==Constants==
| | :''Click on a term below for more information.'' |
| ==ZERO== | | <p></p> |
| return 0.0
| | {| style="background-color: lightblue; width: {{{width|100%}}}" |
| ==ONE== | | <p></p> |
| return 1.0
| | | width="20%" align="{{{align|left}}}" valign="{{{valign|top}}}" | |
| #Number return value of the number specified
| | *GENERAL INFORMATION |
| <Constant> return value of a named constant
| | **[[SELES101l02|HOW TO RUN AN EXAMPLE CODE]] |
| <Constant>[Expr] return value of a named vector constant
| |
| <Constant>[Expr, Expr] return value of a named array constant
| |
| <Macro>[Expr] return value of expression at specified index
| |
| in macro
| |
|
| |
|
| ==Probability Distributions== | | *SYMBOLS |
| ==NORMAL== | | **[[Language Reference 1#plus sign|+]] |
| (Expr, Expr) draw a value from a normal distribution, where | | **[[Language Reference 1#-|-]] |
| the first expression specifies the mean and
| | **[[Language Reference 1#*|*]] |
| the second specifies the standard deviation
| | **[[Language Reference 1#/|/]] |
| | **[[Language Reference 1#^|^]] |
| | **[[Language Reference 1#%|%]] |
| | **[[Language Reference 1#==|==]] |
| | **[[Language Reference 1#!=|!=]] |
| | **[[Language Reference 1#<|<]] |
| | **[[Language Reference 1#<=|<=]] |
| | **[[Language Reference 1#>|>]] |
| | **[[Language Reference 1#>=|>=]] |
| | **[[Language Reference 1#!|!]] |
| | * A|Aa |
| | **[[Language Reference 1#ABS(Expr)|ABS(Expr)]] |
| | **[[Language Reference 1#AND|AND]] |
| | **[[Language Reference 1#ARCCOS|ARCCOS]] |
| | **[[Language Reference 1#ARCSIN|ARCSIN]] |
| | **[[Language Reference 1#ARCTAN(Expr)|ARCTAN(Expr)]] |
| | **[[Language Reference 1#ARCTAN(Expr,Expr)|ARCTAN(Expr,Expr)]] |
| | * B|Bb |
| | **[[Language Reference 1#BITWISE AND|BITWISE AND]] |
| | **[[Language Reference 1#BITWISE NOT|BITWISE NOT]] |
| | **[[Language Reference 1#BITWISE OR|BITWISE OR]] |
| | **[[Language Reference 1#BITWISE XOR|BITWISE XOR]] |
| | * C|Cc |
| | **[[Language Reference 1#CEILING(Expr)|CEILING(Expr)]] |
| | **[[Language Reference 1#CLAMP|CLAMP]] |
| | **[[Language Reference 1#CLASSIFIED_DIST|CLASSIFIED_DIST]] |
| | **[[Language Reference 1#CLASSIFIED_DIST_M|CLASSIFIED_DIST_M]] |
| | <p></p> |
| | | width="20%" align="{{{align|left}}}" valign="{{{valign|top}}}" | |
| | :*[[Language Reference 1#CLASSIFY|CLASSIFY]] |
| | :*[[Language Reference 1#CONTAINS|CONTAINS]] |
| | :*[[Language Reference 1#CONTAINS LINK|CONTAINS LINK]] |
| | :*[[Language Reference 1#COS|COS]] |
| | :*[[Language Reference 1#CRITICAL SECTION|CRITICAL SECTION]] |
| | * D|Dd |
| | :*[[Language Reference 1#DEBUG|DEBUG]] |
| | :*[[Language Reference 1#DECISION|DECISION]] |
| | :*[[Language Reference 1#DIRECTION|DIRECTION]] |
| | :*[[Language Reference 1#DISTANCE|DISTANCE]] |
| | * E|Ee |
| | :*[[Language Reference 1#ELSE|ELSE]] |
| | :*[[Language Reference 1#EQUAL TRUE|EQUAL TRUE]] |
| | :*[[Language Reference 1#EXP(Expr)|EXP(Expr)]] |
| | * F|Ff |
| | :*[[Language Reference 1#FIND|FIND]] |
| | :*[[Language Reference 1#FIND LINK|FIND LINK]] |
| | :*[[Language Reference 1#FIND NEXT|FIND NEXT]] |
| | :*[[Language Reference 1#FIND NEXT LINK|FIND NEXT LINK]] |
| | :*[[Language Reference 1#FIRST|FIRST]] |
| | :*[[Language Reference 1#FIRST LINK|FIRST LINK]] |
| | :*[[Language Reference 1#FLOOR(Expr)|FLOOR(Expr)]] |
| | * G|Gg |
| | :*[[Language Reference 1#GEOMETRIC MEAN|GEOMETRIC MEAN]] |
| | :*[[Language Reference 1#GET|GET]] |
| | :*[[Language Reference 1#GET LINK|GET LINK]] |
| | :*[[Language Reference 1#>=|GREATER OR EQUAL]] |
| | :*[[Language Reference 1#>|GREATER THAN]] |
| | * H|Hh |
| | :*[[Language Reference 1#HEAD|HEAD]] |
| | * I|Ii |
| | :*[[Language Reference 2#IF Expr|IF Expr]] |
| | :*[[Language Reference 2#IF Expr THEN Expr ELSE|IF Expr THEN Expr ELSE]] |
| | <p></p> |
| | | width="20%" align="{{{align|left}}}" valign="{{{valign|top}}}" | |
| | :*[[Language Reference 2#INSERT|INSERT]] |
| | :*[[Language Reference 2#INSERT HEAD|INSERT HEAD]] |
| | :*[[Language Reference 2#INSERT LINK|INSERT LINK]] |
| | :*[[Language Reference 2#INSERT TAIL|INSERT TAIL]] |
| | :*[[Language Reference 2#INTERPOLATE|INTERPOLATE]] |
| | :*[[Language Reference 2#INTERPOLATE|INTERPOLATE]] |
| | :*[[Language Reference 2#IS EMPTY|IS EMPTY]] |
| | :*[[Language Reference 2#IS EMPTY LINKS|IS EMPTY LINKS]] |
| | * J|Jj |
| | * K|Kk |
| | * L|Ll |
| | :*[[Language Reference 1#<=|LESS OR EQUAL]] |
| | :*[[Language Reference 1#<|LESS THAN]] |
| | :*[[Language Reference 2#LINKED|LINKED]] |
| | :*[[Language Reference 2#LOCATION|LOCATION]] |
| | :*[[Language Reference 2#LOG(Expr)|LOG(Expr)]] |
| | :*[[Language Reference 2#LOG NORMAL CDF|LOG NORMAL CDF]] |
| | :*[[Language Reference 2#LOG NORMAL PDF|LOG NORMAL PDF]] |
| | :*[[Language Reference 2#LOG NORMAL TEMPORAL PDF|LOG NORMAL TEMPORAL PDF]] |
| | :*[[Language Reference 2#LOOKUP|LOOKUP]] |
| | * M|Mm |
| | :*[[Language Reference 2#MAX|MAX]] |
| | :*[[Language Reference 2#MAX POSITION|MAX POSITION]] |
| | :*[[Language Reference 2#MEAN|MEAN]] |
| | :*[[Language Reference 2#MIN|MIN]] |
| | :*[[Language Reference 2#MIN POSITION|MIN POSITION]] |
| | * N|Nn |
| | :*[[Language Reference 2#NEGEXP|NEGEXP]] |
| | :*[[Language Reference 2#NEXT|NEXT]] |
| | :*[[Language Reference 2#NEXT LINK|NEXT LINK]] |
| | :*[[Language Reference 2#NORMAL|NORMAL]] |
| | :*[[Language Reference 2#NORMAL CDF|NORMAL CDF]] |
| | :*[[Language Reference 2#NORMAL PDF|NORMAL PDF]] |
| | :*[[Language Reference 2#NORMAL TEMPORAL PDF|NORMAL TEMPORAL PDF]] |
| | :*[[Language Reference 2#NOT EQUAL|NOT EQUAL]] |
|
| |
|
| ==SKEWED NORMAL== | | <p></p> |
| (Expr, Expr, Expr) draw a value from a skewed normal distribution, where the first expression specifies the mode
| | | width="20%" align="{{{align|left}}}" valign="{{{valign|top}}}" | |
| and the second and third specify the standard
| | :*[[Language Reference 2#NORMAL TEMPORAL PDF|NORMAL TEMPORAL PDF]] |
| deviations to the left and right of the mode
| | :*[[Language Reference 2#NOT EQUAL|NOT EQUAL]] |
| ==LOG NORMAL==
| | * O|Oo |
| (Expr, Expr) draw a value from a log normal distribution,
| | :*[[Language Reference 3#ONE|ONE]] |
| where the first expression specifies the mean
| | :*[[Language Reference 3#OR|OR]] |
| and the second specifies the standard deviation
| | :*[[Language Reference 3#OUTPUT RECORD|OUTPUT RECORD]] |
| of the underlying normal distribution
| | :*[[Language Reference 3#OVER INDEX SEQUENCE|OVER INDEX SEQUENCE]] |
| | | * P|Pp |
| ==WEIBULL==
| | :*[[Language Reference 3#PAUSE|PAUSE]] |
| (Expr, Expr) draw a value from a Weibull distribution, where
| | :*[[Language Reference 3#PAUSE (#Value)IF|PAUSE (#Value)IF]] |
| the first expression specifies the beta and the
| | :*[[Language Reference 3#PAUSE IF|PAUSE IF]] |
| second specifies alpha (Note:terminology varies
| | :*[[Language Reference 3#PREV|PREV]] |
| between sources. The version here is equivalent
| | :*[[Language Reference 3#PREV LINK|PREV LINK]] |
| to that in Excel, with reversal of parameters).
| | * Q|Qq |
| | | * R|Rr |
| NEGEXP(Expr) draw a value from a negative exponential distribution, where the expression specifies the
| | :*[[Language Reference 3#RECOMPUTE|RECOMPUTE]] |
| mean
| | :*[[Language Reference 3#REGION CENTRED|REGION CENTRED]] |
| POISSION(Expr) draw a value from a Poisson distribution
| | :*[[Language Reference 3#REGION COST SURFACE|REGION COST SURFACE]] |
| | | :*[[Language Reference 3#REGION LEAST COST PATH|REGION LEAST COST PATH]] |
| UNIFORM(Expr, Expr) draw a value from a uniform distribution, where the first expression determines the minimum value and the second determines the maximum
| | :*[[Language Reference 3#REGION LOCATION|REGION LOCATION]] |
| CLASSIFIED_DIST draw a value from a discrete distribution, where CLASS Number: Expr each expression determines the relative : probability of its associated class being drawn. ENDFN The CLASS keyword is optional.
| | :*[[Language Reference 3#REGION LOCATION LIST|REGION LOCATION LIST]] |
| | | :*[[Language Reference 3#REGION RECT|REGION RECT]] |
| CLASSIFIED_DIST( Number+) in this form, the classes are assumed to start at zero. Only constant probabilities can be given.
| | :*[[Language Reference 3#REGION VECTOR|REGION VECTOR]] |
| | | :*[[Language Reference 3#REGION WHOLE MAP|REGION WHOLE MAP]] |
| CLASSIFIED_DIST in this form, the classes are assumed to start at Expr zero :
| | :*[[Language Reference 3#REMOVE|REMOVE]] |
| ENDFN
| | :*[[Language Reference 3#REMOVE ALL LINKS|REMOVE ALL LINKS]] |
| | | :*[[Language Reference 3#REMOVE LINK|REMOVE LINK]] |
| CLASSIFIED_DIST[M] In this form, the classes in a one-dimensional
| | :*[[Language Reference 3#RESIZE|RESIZE]] |
| array M, and so start at zero.
| | :*[[Language Reference 3#RESPONSE|RESPONSE]] |
| | | :*[[Language Reference 3#ROUND(Expr)|ROUND(Expr)]] |
| ===Probability Density and Cumulative Density Functions===
| | * S|Ss |
| The following are a set of probability and cumulative density expressions. The results from probability density expressions should be multiplied by a width factor to obtain a probability of value X (i.e. the estimated area under the PDF curve). Without a width factor, the assumed class size is 1. A temporal PDF makes a PDF conditional, where the variable X is assumed to be a time or other increasing value. Essentially, a PDF will give the probability of value X occurring, while a TEMPORAL PDF will give the probability of X occurring given that if hasn’t occurred yet (i.e. given that that actual value of this variable will be >= X).
| | :*[[Language Reference 3#SEED|SEED]] |
| | | :*[[Language Reference 3#SELECTAT|SELECTAT]] |
| NORMAL PDF(Expr, Expr, Expr) normal probability density function, where the first expression is the value, the second is the mean and the third is the standard deviation
| | <p></p> |
| [[Model Builder's Guide Chapter 9#Probability Density and Cumulative Density Functions]] | | | width="20%" align="{{{align|left}}}" valign="{{{valign|top}}}" | |
| | | :*[[Language Reference 3#SET|SET]] |
| NORMAL CDF(Expr, Expr, Expr) normal cumulative density function, where the first expression is the value, the second is the mean and the third is the standard deviation
| | :*[[Language Reference 3#SET LINK|SET LINK]] |
| [[Model Builder's Guide Chapter 9#Probability Density and Cumulative Density Functions]] | | :*[[Language Reference 3#SETAT|SETAT]] |
| | | :*[[Language Reference 3#SETAT(Expr,PositionList,#Type)|SETAT(Expr,PositionList,#Type)]] |
| SKEWED NORMAL PDF(Expr, Expr, Expr, Expr) skewed normal probability density function,
| | :*[[Language Reference 3#SETAT(Expr,PositionList,#Type)|SETAT(Expr,PositionList,#Type,#Prob)]] |
| where the first expression specifies the value,
| | :*[[Language Reference 3#SHIFT LEFT|SHIFT LEFT]] |
| the second is the mode and the third and fourth are the standard deviations to the left and right
| | :*[[Language Reference 3#SHIFT RIGHT|SHIFT RIGHT]] |
| of the mode.
| | :*[[Language Reference 3#SIN|SIN]] |
| [[Model Builder's Guide Chapter 9#Probability Density and Cumulative Density Functions]] | | :*[[Language Reference 3#SIZE LINKS|SIZE LINKS]] |
| | | :*[[Language Reference 3#SKEWED NORMAL CDF|SKEWED NORMAL CDF]] |
| SKEWED NORMAL CDF(Expr, Expr, Expr, Expr) skewed normal cumulative density function, where the first expression specifies the value,
| | :*[[Language Reference 3#SKEWED NORMAL PDF|SKEWED NORMAL PDF]] |
| the second is the mode, and the third and fourth are the left and right standard deviations
| | :*[[Language Reference 3#SKEWED NORMAL TEMPORAL PDF|SKEWED NORMAL TEMPORAL PDF]] |
| [[Model Builder's Guide Chapter 9#Probability Density and Cumulative Density Functions]] | | :*[[Language Reference 3#SORT|SORT]] |
| | | :*[[Language Reference 3#SORT LINKS|SORT LINKS]] |
| LOG NORMAL PDF(Expr, Expr, Expr) log normal probability density function, where
| | :*[[Language Reference 3#STRICT ORDERED|STRICT ORDERED]] |
| the first expression specifies the value, the
| | :*[[Language Reference 3#SUM|SUM]] |
| second is the mean and the third is the standard
| | * T|Tt |
| deviation
| | :*[[Language Reference 3#TAIL|TAIL]] |
| [[Model Builder's Guide Chapter 9#Probability Density and Cumulative Density Functions]] | | :*[[Language Reference 3#TAN|TAN]] |
| | | * U|Uu |
| LOG NORMAL CDF(Expr, Expr, Expr) log normal cumulative density function, where
| | :*[[Language Reference 3#UNIFORM|UNIFORM]] |
| the first expression specifies the value, the
| | :*[[Language Reference 3#UNIFORM TEMPORAL PDF|UNIFORM TEMPORAL PDF]] |
| second is the mean and the third is the standard
| | * V|Vv |
| deviation
| | * W|Ww |
| [[Model Builder's Guide Chapter 9#Probability Density and Cumulative Density Functions]] | | :*[[Language Reference 3#WAIT UNTIL|WAIT UNTIL]] |
| | | :*[[Language Reference 3#WHILE|WHILE]] |
| NORMAL TEMPORAL PDF(Expr, Expr, Expr) temporal normal probability density function
| | * X|Xx |
| [[Model Builder's Guide Chapter 9#Probability Density and Cumulative Density Functions]] | | * Y|Yy |
| | | * Z|Zz |
| SKEWED NORMAL TEMPORAL PDF(Expr, Expr, Expr, Expr)
| | :*[[Language Reference 3#ZERO|ZERO]] |
| temporal skewed normal probability density
| | <p></p> |
| function
| | |} |
| [[Model Builder's Guide Chapter 9#Probability Density and Cumulative Density Functions]] | |
| | |
| LOG NORMAL TEMPORAL PDF(Expr, Expr, Expr) temporal log normal probability density
| |
| function
| |
| [[Model Builder's Guide Chapter 9#Probability Density and Cumulative Density Functions]] | |
| | |
| UNIFORM TEMPORAL PDF(Expr, Expr, Expr) temporal uniform probability density expression
| |
| [[Model Builder's Guide Chapter 9#Probability Density and Cumulative Density Functions]] | |
| | |
| ===Continuous Functions (Arithmetic Functions)===
| |
| <Variable> value of an independent variable <Variable>[Expr] value of a vector global variable
| |
| <Variable>[Expr, Expr] value of an array global variable
| |
| [[Model Builder's Guide Chapter 9#Continuous Functions (Arithmetic Functions)]] | |
| | |
| (Expr) value of the expression Expr + Expr sum of two expressions Expr - Expr value of the first expression minus the value | |
| of the second expression Expr * Expr product of two expressions Expr / Expr value of the first expression divided by value
| |
| of the second expression Expr ^ Expr value of the first expression to the power of
| |
| the value of the second expression. An nth
| |
| root can be computed with1/n as the power.
| |
| | Expr | absolute value of the expression | |
| ABS(Expr) absolute value of the expression
| |
| [[Model Builder's Guide Chapter 9#Continuous Functions (Arithmetic Functions)]] | |
| | |
| ABSOLUTE(Expr) absolute value of the expression
| |
| Expr % Expr value of the first expression modulo the value of
| |
| the second expression (assumes that the values
| |
| of the expressions are integers)
| |
| EXP(Expr) base of the natural logarithm (e) to the power of
| |
| the expression
| |
| LOG(Expr) natural logarithm of the value of the expression.
| |
| Logarithms in other bases can be computed as
| |
| logb(x) = ln(x) / ln(b)
| |
| [[Model Builder's Guide Chapter 9#Continuous Functions (Arithmetic Functions)]] | |
| | |
| ROUND(Expr) expression value rounded to the nearest integer[[Model Builder's Guide Chapter 9#Continuous Functions (Arithmetic Functions)]]
| |
| FLOOR(Expr) largest integer smaller than the expression value[[Model Builder's Guide Chapter 9#Continuous Functions (Arithmetic Functions)]]
| |
| CEILING(Expr) smallest integer larger than the expression value[[Model Builder's Guide Chapter 9#Continuous Functions (Arithmetic Functions)]]
| |
| | |
| CLAMP(Expr, MinExpr, MaxExpr) clamp the value X of the expression to the range
| |
| [Min, Max]: if X < Min then return Min; if X < Max return Max. Otherwise return X.
| |
| [[Model Builder's Guide Chapter 9#Continuous Functions (Arithmetic Functions)]] | |
| | |
| ===Continuous Functions (Trigonometric Functions)===
| |
| Angles are all assumed to be in degrees (not radians). In SELES, angles in compass directions (i.e. zero is north, increasing clockwise, in contrast to geometry where zero is each increasing counter-clockwise) [[Model Builder's Guide Chapter 9#Continuous Functions (Trigonometric Functions)]]
| |
| SIN(Expr) interpret the value of the expression as an angle
| |
| theta in degrees, and return sin(theta) [[Model Builder's Guide Chapter 9#Continuous Functions (Trigonometric Functions)]]
| |
| COS(Expr) interpret the value of the expression as an angle
| |
| theta in degrees, and return cos(theta) [[Model Builder's Guide Chapter 9#Continuous Functions (Trigonometric Functions)]]
| |
| TAN(Expr) interpret the value of the expression as an angle
| |
| theta in degrees, and return tan(theta) [[Model Builder's Guide Chapter 9#Continuous Functions (Trigonometric Functions)]]
| |
| ARCSIN(Expr) inverse sine of the value of the expression [[Model Builder's Guide Chapter 9#Continuous Functions (Trigonometric Functions)]]
| |
| ARCCOS(Expr) inverse cos of the value of the expression [[Model Builder's Guide Chapter 9#Continuous Functions (Trigonometric Functions)]]
| |
| ARCTAN(Expr) inverse tan of the value of the expression [[Model Builder's Guide Chapter 9#Continuous Functions (Trigonometric Functions)]]
| |
| ARCTAN(Expr, Expr) inverse tan where first expression is x offset
| |
| and second is y offset. Providing two
| |
| expressions gives more information about the
| |
| quadrant.
| |
| [[Model Builder's Guide Chapter 9#Continuous Functions (Trigonometric Functions)]] | |
| | |
| ===Continuous Functions (Miscellaneous)===
| |
| RESPONSE(Expr, #A, #B, #C) two-sided version of a standard response
| |
| function for the value X of the first expression:
| |
| if (X < A) return e^(-(X-A)^2/(2*(C^2))
| |
| else if (X > B) return e^(-(X-B)^2/(2*(C^2))
| |
| else return 1
| |
| [[Model Builder's Guide Chapter 9#Continuous Functions (Miscellaneous)]] | |
| | |
| DISTANCE(Expr, Expr) distance between two location indices (normally
| |
| obtained using the Location variable). Thus,
| |
| DISTANCE(loc1, loc2) is
| |
| sqrt(sqr(loc1.x – loc2.x) + sqr(loc1.y – loc2.y))
| |
| [[Model Builder's Guide Chapter 9#Continuous Functions (Miscellaneous)]] | |
| | |
| DIRECTION(Expr, Expr) angle in degrees between two location indices
| |
| [[Model Builder's Guide Chapter 9#Continuous Functions (Miscellaneous)]] | |
| | |
| ===Classified and Discrete Functions===
| |
| CLASSIFY(X) if the value of the variable X is equal to one of
| |
| CLASS Number: Expr the classes listed, then return the result of the.
| |
| : associated expression. Otherwise return 0.
| |
| ENDFN
| |
| | |
| CLASSIFY(X) return the result of the kth expression in the list,
| |
| Expr where k = X – minimum value of the variables
| |
| : (this may be non-0 only for layers)
| |
| :
| |
| ENDFN
| |
| | |
| CLASSIFY(X): ( Number+) return the kth number in the list, where
| |
| k = X – minimum value of the variable (this
| |
| may be non-0 only for layers)
| |
| | |
| CLASSIFY(X): Filename uses the table in the named file, which is
| |
| assumed to consist of class:value pairs. Rarely
| |
| used.
| |
| | |
| CLASSIFY(X): Filename Key uses the table in the named file, which is
| |
| assumed to consist of class:value pairs. The key
| |
| is used to specify a sub-table in a multi-table
| |
| file. Rarely used.
| |
| | |
| Classified functions use the variable as an index into the list of numbers or expressions that follow. The “CLASS” keyword is optional. This variable must be non-negative. If “CLASS # :” is used, then the number refers to the value of the indexing variable. If a class is not specified for a given value, its expression is implicitly ZERO. Interpolation tables are very similar except that the variable is assumed to be continuous instead of classified. An interpolated value between classes is returned. Lookup tables are also similar, except that both the variable and classes are assumed to be continuous values. An interpolated value between classes is also returned. Rarely used.
| |
| | |
| INTERPOLATE(X) return an interpolated value where the value of
| |
| CLASS Number: Number variable X is placed between two classes or at
| |
| : either end of the table.
| |
| ENDFN
| |
| | |
| INTERPOLATE(X): ( Number+) same as above, except the classes are
| |
| implicitly 0, …. k-1
| |
| | |
| INTERPOLATE(X) same as above, except the values in the
| |
| CLASS Number: Expr table are obtained by evaluating expressions
| |
| :
| |
| ENDFN
| |
| | |
| INTERPOLATE(X) same as above, except the classes are
| |
| Expr implicitly 0, …, k-1
| |
| :
| |
| ENDFN
| |
| | |
| INTERPOLATE(X): Filename uses the table in the named file, which is
| |
| assumed to consist of class:value pairs
| |
| | |
| INTERPOLATE(X): Filename Key uses the table in the named file, which is
| |
| assumed to consist of class:value pairs. The key
| |
| is used to specify a sub-table in a multi-table
| |
| file.
| |
| | |
| LOOKUP(X) return the interpolated value where the value of
| |
| CLASS Number: Number variable X is placed between two classes or at
| |
| : either end of the table, and classes can be any.
| |
| ENDFN real values.
| |
| | |
| LOOKUP(X): ( Number+) same as above, except the classes are
| |
| implicitly 0, …. k-1
| |
| | |
| LOOKUP(X) same as above, except the values in the
| |
| CLASS Number: Expr table are obtained by evaluating expressions
| |
| :
| |
| ENDFN
| |
| | |
| LOOKUP(X) same as above, except the classes are
| |
| Expr implicitly 0, …, k-1
| |
| :
| |
| ENDFN
| |
| | |
| LOOKUP(X): Filename uses the table in the named file, which is
| |
| assumed to consist of class:value pairs
| |
| | |
| LOOKUP(X): Filename Key uses the table in the named file, which is
| |
| assumed to consist of class:value pairs. The key
| |
| is used to specify a sub-table in a multi-table
| |
| file
| |
| | |
| ===Boolean Functions===
| |
| Expr EQ Expr TRUE if the values of the two expressions are
| |
| equal; otherwise FALSE
| |
| Expr == Expr alternate form of EQ comparison (Note: two equal signs distinguish this from an assignment)
| |
| | |
| Expr NEQ Expr TRUE if the values are not equal; otherwise
| |
| FALSE
| |
| Expr != Expr alternate form of NOT EQUAL comparison
| |
| | |
| Expr < Expr TRUE if the value of the first expression is less
| |
| than the value of the second expression;
| |
| otherwise FALSE
| |
| Expr <= Expr TRUE if the value of the first expression is less
| |
| than or equal to the value of the second
| |
| expression; otherwise FALSE
| |
| | |
| Expr > Expr TRUE if the value of the first expression is
| |
| greater than the value of the second
| |
| expression; otherwise FALSE
| |
| Expr >= Expr TRUE if the value of the first expression is
| |
| greater than or equal to the value of the
| |
| second expression; otherwise FALSE
| |
| | |
| !Expr Negates the expression Boolean value
| |
| | |
| Expr AND Expr TRUE if values of both expressions are
| |
| TRUE and FALSE otherwise
| |
| | |
| Expr OR Expr TRUE if value of at least one expression is
| |
| TRUE and FALSE otherwise
| |
| | |
| Note that relations can be cascaded, with the interpretation that each operator applies independently to its surrounding pair of expressions. Thus, the expression: Expression <= Expression <= Expression (e.g. 5 <= age <= 50) specifies a “between” relation, which is TRUE only if the value of the centre expression falls in the specified range.
| |
| | |
| ===Bit-Vector Functions===
| |
| Bit-vector functions treat an integer value (the independent variable) as a sequence of bits, each of which can be independently set and accessed. This can allow use of a single layer to hold lots of Boolean information, since each cell as an integer has 8, 16 or 32 bits. For example, bits 0, 1, 2 and 3 can be used to store four different Boolean states (a, b, c and d), and the sequence 0110 means that states a and d are FALSE and states b and c are TRUE. PositionList is a semi-colon separated sequence of integer or ranges (lower-upper) indicating positions in the integer (0-31). For example, the PositionList 1;4-6;27 indicates bits at positions 1, 4, 5, 6 and 27.
| |
| | |
| SETAT(Expr, PositionList, #Type) Set the value specified by the expression, at
| |
| the positions in PositionList to: FALSE (0)
| |
| if Type is 0, TRUE (1) if Type is 1,
| |
| and flip the bits if Type = 2
| |
| | |
| SETAT(Expr, PositionList,#Type,#Prob) Same as above, except each position is set
| |
| with probability #Prob
| |
| | |
| SELECTAT(Expr, PositionList) FALSE(0) if none of the bits in PositionList are
| |
| set in the specified expression value and
| |
| TRUE(1) otherwise
| |
| | |
| MAX POSITION(Expr) Return the maximum 0-based bit position that is
| |
| set to one in the expression value (interpreted
| |
| as a bit-vector), or –1 if no bits are set
| |
| | |
| MIN POSITION(Expr) Return the minimum 0-based bit position that is
| |
| set to one in the expression value (interpreted
| |
| as a bit-vector), or –1 if no bits are set
| |
| | |
| BITWISE OR(Expr, Expr) Bitwise OR of two values
| |
| BITWISE AND(Expr, Expr) Bitwise AND of two values
| |
| BITWISE XOR(Expr, Expr) Bitwise exclusive-OR of two values
| |
| BITWISE NOT Expr Bitwise NOT of a value
| |
| | |
| SHIFT LEFT(Expr, Expr) Shifts value of first expression to the left by
| |
| number of bits specified by second expression
| |
| SHIFT RIGHT(Expr, Expr) Shifts value of first expression to the right by
| |
| number of bits specified by second expression
| |
| | |
| ===Control Expressions===
| |
| Note the difference between the first two “functional if’s” (i.e. a value is returned) and the latter “procedural if’s” (that don’t return a value, but control flow).
| |
| | |
| IF Expr THEN Expr ELSE Expr if value of the IF expression is TRUE (>= 1), then return the value of the THEN expression,
| |
| otherwise return value of the ELSE expression
| |
| | |
| (Expr ? Expr : Expr) Same as above, but this form can be used as an
| |
| embedded sub-expression.
| |
| | |
| IF Expr Procedural IF statement to process
| |
| … sub-expressions denoted by “…” only if the
| |
| ENDFN expression evaluates to TRUE
| |
| | |
| IF Expr Procedural IF statement to process the first set
| |
| … of sub-expressions denoted by “…”if the
| |
| ELSE expression evaluates to TRUE and the set of
| |
| … sub-expressions after the ELSE otherwise. Note
| |
| ENDFN that “ELSE IF expr” forms can be strung
| |
| together
| |
| | |
| WHILE Expr While loop: process sub-expressions denoted by
| |
| … “…” while the expression evaluates to TRUE
| |
| ENDFN
| |
| | |
| PAUSE Halts the simulation and displays a dialog
| |
| box to which the user must respond to continue
| |
| | |
| PAUSE IF Expr If the expression evaluates to TRUE, halts the
| |
| simulation and displays a dialog box to which
| |
| the user must respond to continue
| |
| | |
| PAUSE(#Value) Pauses the simulation for the specified number
| |
| of milliseconds and then continues
| |
| | |
| PAUSE(#Value) IF Expr If the expression evaluates to TRUE, Pauses the
| |
| simulation for the specified number of
| |
| milliseconds and then continues
| |
| | |
| WAIT UNTIL Expr Suspend execution until the expression returns TRUE (1). This is intended for controlling
| |
| communication and synchronization with
| |
| an external application.
| |
| CRITICAL SECTION (Flag) Enter (if Flag is TRUE) or exit (if Flag is FALSE) a critical section. A critical section gives priority to this application, and is used for
| |
| synchronizing access to shared variables
| |
| (i.e. shared with another application).
| |
| | |
| DEBUG Update the simulation probe, if it is loaded and
| |
| The event is selected. Used to debug/verify
| |
| event behaviour.
| |
| | |
| SEED() Gets the random number seed
| |
| SEED(Expr) Sets the random number seed. Value returned is
| |
| next seed.
| |
| | |
| RESIZE(Variable, Expr) Changes size (number of entries) in a global
| |
| variable. Values are not maintained. Useful for
| |
| when size is not known prior to simulation.
| |
| | |
| RECOMPUTE Only valid in consequent expressions of
| |
| ProbInit and also when ProbInit recompute flag
| |
| has been set. Causes prob. surface to be
| |
| recomputed before next selection
| |
| ===Output Expressions===
| |
| DISPLAY Display on the screen the labelled Label: Expr values computed with the expressions listed.
| |
| …. If no label is given, the expression must
| |
| ENDFN be a variable, and this is used for the label.
| |
| | |
| DISPLAY Same as above, but only display if the DECISION Expr decision expression evaluates to TRUE
| |
| Label: Expr The keyword DECISION can be replaced by
| |
| …. a “?”
| |
| ENDFN
| |
| | |
| OUTPUT RECORD(OutputVar) Output to the record file of output variable the labelled values computed with the Label: Expr expressions listed. If no label is given, the
| |
| …. Expression must be a variable and this is
| |
| ENDFN used as label.
| |
| | |
| OUTPUT RECORD(OutputVar) Same as above, but only output if the DECISION Expr decision expression evaluates to TRUE
| |
| Label: Expr
| |
| ….
| |
| ENDFN
| |
| | |
| Note: a label/expression pair can be “expanded” by using the form: Label#n1:n2: Expr, where n1 and n2 are integers or constant names. This will create n2-n1+1 columns rather than a single column. The system variable Index can be used in the expression, and will take on values n1, n1+1,…,n2 for each column, respectively.
| |
| | |
| ===Composite Functions===
| |
| Compound expressions all have the same form of an expression name followed by a list of sub-expressions. If the first expression is a region function, then the subsequent expressions are all evaluated over the defined region, instead of only at the current cell (however, it is usually simpler to use an OVER REGION expression). When arithmetic expression become complex, sometimes composite expressions can be written more clearly. The general format is as follows:
| |
| | |
| CompositeExpressionName
| |
| Expr
| |
| :
| |
| ENDFN
| |
| | |
| The following composite expressions are supported:
| |
| | |
| ===SUM===
| |
| DESCRIPTION:
| |
| Returns the number that is the sum of all the expressions.
| |
| | |
| USAGE:
| |
| x=SUM
| |
| Expr
| |
| ...
| |
| ENDFN
| |
| | |
| REQUIRED ARGUMENTS:
| |
| Expr is any expression that evaluates to single numeric value.
| |
| | |
| VALUE:
| |
| the sum of all the arguments.
| |
| | |
| SEE ALSO:
| |
| <a link to the composite functions section of seles modellers guide>
| |
| | |
| EXAMPLES: <add carriage return here>
| |
| Example 1:
| |
| y = 3
| |
| x = SUM
| |
| y
| |
| y+2
| |
| 5
| |
| ENDFN
| |
| <figure out an end example indicator. For example, ***>
| |
| | |
| SAMPLE MODELS:
| |
| <links to sample models where this function is used>
| |
| | |
| ===PRODUCT===
| |
| product of the sub-expressions
| |
| | |
| DIVIDE successive division of the sub-expressions
| |
| | |
| MEAN average of the sub-expressions
| |
| | |
| GEOMETRIC MEAN geometric mean of the sub-expressions (nth
| |
| root of the product for n expressions)
| |
| | |
| MIN minimum of the sub-expressions
| |
| | |
| MAX maximum of the sub-expressions
| |
| | |
| EQUAL TRUE (1) if the sub-expressions all evaluate to
| |
| the same value and FALSE (0) otherwise
| |
| NOT EQUAL FALSE (0) if the sub-expressions all evaluate to
| |
| the same value and TRUE (1) otherwise
| |
| | |
| OR TRUE (1) if at least one sub-expression
| |
| evaluates to TRUE and FALSE (0) otherwise
| |
| | |
| AND TRUE (1) if all sub-expressions evaluate to
| |
| TRUE and FALSE (0) otherwise
| |
| | |
| LESS OR EQUAL TRUE (1) if the sub-expression evaluations are
| |
| all ordered according to the relation <=, and
| |
| FALSE (0) otherwise
| |
| | |
| ORDERED same as LESS OR EQUAL
| |
| | |
| LESS THAN TRUE (1) if the sub-expression evaluations are
| |
| all ordered according to the relation <, and
| |
| FALSE (0) otherwise
| |
| | |
| STRICT ORDERED same as LESS THAN
| |
| | |
| GREATER OR EQUAL TRUE (1) if the sub-expression evaluations are
| |
| all ordered according to the relation >=, and
| |
| FALSE (0) otherwise
| |
| | |
| GREATER THAN TRUE (1) if the sub-expression evaluations are
| |
| all ordered according to the relation >, and
| |
| FALSE (0) otherwise
| |
| | |
| ===Region Functions===
| |
| A region function returns the set of locations, one on each call. Their use is limited to the main expression of EventLocation, SpreadLocation, AgentLocation and MoveLocation properties, as the first expression of composite expressions and in OVER REGION functions.
| |
| | |
| REGION WHOLE MAP defines the region consisting of the entire
| |
| DECISION Expr landscape. If there is a decision expression,
| |
| then only those cells for which this expression
| |
| returns TRUE will be included.
| |
| | |
| REGION RECT (Expr, Expr, Expr, Expr) defines a rectangular region. If there is a
| |
| DECISION Expr decision expression defined, then only those
| |
| cells for which this expression returns
| |
| TRUE will be included
| |
| | |
| REGION CENTRED (Expr, Expr [, DistanceType][, WRAPPED])
| |
| DECISION Expr defines a region centred on the current cell.
| |
| If there is a decision expression, then only
| |
| those cells for which this expression returns
| |
| TRUE will be included.
| |
| | |
| DistanceType is either CARDINAL or EUCLIDEAN (the default). Cardinal distance between two cells is the minimum number of cardinal steps (up, down, left, right) to reach one cell from the other. Euclidean distance is the straight-line distance between two points. The WRAPPED flag, if present indicates that the region wraps around the sides (vertically and horizontally) of the landscape (e.g. a location x positions beyond the right-hand side of a raster will be mapped to x positions in from the left-hand side of the raster). If not present, the landscape does not wrap.
| |
| | |
| REGION LOCATION LIST(Number+) defines the region consisting of a set of
| |
| DECISION Expr known location indices. If there is a decision expression, then only those cells for which this
| |
| expression returns TRUE will be included.
| |
| | |
| REGION LOCATION LIST(X,n) defines the region consisting of a set of n
| |
| DECISION Expr location indices stored in one-dimensional X.
| |
| | |
| REGION LOCATION (Expr) defines the region consisting of a of a single
| |
| DECISION Expr location index. If there is a decision expression,
| |
| then only those cells for which this expression
| |
| returns TRUE will be included.
| |
| | |
| REGION VECTOR (StartLocation, EndLocation) defines region consisting of cells along an
| |
| DECISION Expr approximation of line between end cells
| |
| | |
| | |
| Cost surface and least-cost path regions are advanced features that are best understood with an example model.
| |
| | |
| REGION COST SURFACE(EndLocation, MaxCost, CostSurface)
| |
| DECISION Expr
| |
| COST Expr
| |
| REGION COST SURFACE(EndLocation, MaxCost, CostSurface, LeastCostNeighbs, AnchorLoc)
| |
| DECISION Expr
| |
| COST Expr
| |
| Defines a region surrounding a cell with
| |
| cumulative costs less than MaxCost. Stops
| |
| growing when EndLocation is reached or all
| |
| costs are greater than MaxCost. Second form
| |
| also records gradient and anchor location
| |
| layers. The CostSurface layer records the
| |
| cumulative cost from the cost function
| |
| | |
| REGION LEAST COST PATH(StartLocation, EndLocation)
| |
| DECISION Expr
| |
| COST Expr
| |
| REGION LEAST COST PATH(StartLocation, EndLocation, LeastCostNeighbs)
| |
| DECISION Expr
| |
| REGION LEAST COST PATH(StartLocation, EndLocation, LeastCostNeighbs, AnchorLoc)
| |
| DECISION Expr
| |
| Defines a region with cells that approximate
| |
| the least-cost path between two cells. The
| |
| first generates the cost function internally.
| |
| The latter two use input information from a
| |
| pre-computed cost surface region. Providing
| |
| both the gradient and anchor location layers
| |
| provides the most accurate approximation.
| |
| | |
| Iteration is a common aspect of models (even if it is very procedural). Most programming languages offer a “for-loop” of some kind. SELES presently provides “over index sequence” expressions as a slightly more declarative (although also more cumbersome) expression for iterating. While-loops can also be used.
| |
| | |
| OVER INDEX SEQUENCE(Expr, Expr) defines linear sequence of location indices.
| |
| DECISION Expr If there is a decision expression, then only
| |
| those cells for which this expression returns
| |
| TRUE will be included. The system variable
| |
| Index holds the value of the index at each value
| |
| in the sequence
| |
| | |
| Over region expressions are very frequently used to visit all cells in a landscape that meet some condition (e.g. to compute the size of the forest at initiation).
| |
| | |
| OVER RegionFunction Apply a set of sub-expressions at all spatial
| |
| Expression locations specified by a region function
| |
| :
| |
| ENDFN
| |
| | |
| AT LOCATION #Expr Apply a set of state-changes at a specified
| |
| Expression location
| |
| :
| |
| ENDFN
| |
| | |
| ===Matrix Functions===
| |
| Matrix assignment is indicated using “[=]” instead of “=”. The proper dimensions of the component arrays must be met.
| |
| | |
| Variable [=] Variable assign variable of same dimension, or a
| |
| single value to all entries
| |
| Variable [=] Variable + Variable sum variables of same dimension (or with a
| |
| constant)
| |
| Variable [=] Variable - Variable subtract variables of same dimension (or
| |
| with a constant)
| |
| Variable [=] Variable * Variable matrix or scalar multiplication.
| |
| | |
| Variable [=] TRANSPOSE(Variable) matrix transposition
| |
| Variable [=] Variable^-1 invert a matrix
| |
| Variable = SUM(Variable) sum all entries in a matrix
| |
| Variable [=] SUM ROWS (Variable) sum all rows of a matrix (result has one
| |
| value per column)
| |
| Variable [=] SUM COLS(Variable) sum all columns of a matrix
| |
| | |
| Variables [=] SORT(Variable, Expr) sort rows of an input matrix where rank is
| |
| given by Expr. The system variable “Index”
| |
| can appear in the expression and will take on
| |
| the range of indices in the input array. The
| |
| resulting sorted matrix will be assigned.
| |
| | |
| Variable [=] MPM_MULT(Variable, Variable) Performs a “matrix population model”
| |
| (MPM) integer-based multiplication.
| |
| Assumes that first matrix is two-dimensional
| |
| and that second is a vector. The result is
| |
| two-dimensional, where entries above
| |
| diagonal represent "offspring", entries on the
| |
| diagonal represent "survivors" and entries
| |
| below the diagonal represent "succeeders"
| |
| | |
| Variable [=] CONTAG(Variable, Variable) Creates a “temporal contagion” matrix.
| |
| Given probabilities (first parameter) for a set
| |
| of states and a two-dimensional contagion
| |
| array (values –1 to 1 indicating affinity),
| |
| generates a matrix where each row is a prob.
| |
| dist. For transitions given the row value, and
| |
| the overall target dist. will be met.
| |
| | |
| ===General Set, List and Graph Functions===
| |
| REMOVE ALL(LinkedVariable) clears variable. No return value
| |
| SIZE(LinkedVariable) number of elements, entries or nodes
| |
| IS EMPTY(LinkedVariable) TRUE if and only if variable has 0 elements
| |
| | |
| FIRST(LinkedVariable) returns position of first element, entry or
| |
| node
| |
| NEXT(LinkedVariable, PosVariable) returns position of element, entry or node
| |
| following position provided
| |
| PREV(LinkedVariable, PosVariable) returns position of element, entry or node
| |
| preceding position provided
| |
| REMOVE(LinkedVariable, PosVariable) remove and deletes element, entry or node
| |
| at position
| |
| | |
| Variable [=] GET(LinkedVariable, PosVariable) get element, entry or node at position
| |
| X [=] GET(LinkedVariable, PosVariable, Index) get single value in a given index
| |
| SET(LinkedVariable, PosVariable, Variable) set element, entry or node at position
| |
| SET(LinkedVariable, PosVariable, entryIndex, Value)
| |
| set value at specified index of element,
| |
| entry or node at position
| |
| FIND(LinkedVariable, , TmpVariable Condition) return first position of an element, entry or
| |
| node that satisfies the condition
| |
| FIND NEXT(LinkedVariable, PosVariable, TmpVariable, Condition)
| |
| return next position of an element, entry or
| |
| node that satisfies the condition
| |
| SORT(LinkedVariable, TmpVariable1, TmpVariable2, Condition)
| |
| sort elements, entries or nodes according to
| |
| condition
| |
| | |
| ===Set Functions===
| |
| CONTAINS(SetVariable, ElementVariable) TRUE if and only if set variable “contains”
| |
| variable provided, where two elements are
| |
| identical if they have identical values
| |
| INSERT(SetVariable, ElementVariable) add element to set. Only changes set if it
| |
| doesn’t already contain the element
| |
| SetVariable = UNION(Set1, Set2) take union of two set variables
| |
| SetVariable = INTERSECTION(Sete1, Set2) take intersection of two set variables
| |
| SetVariable = SUBTRACT(Sete1, Set2) subtract second set variable from first
| |
| | |
| ===List Functions===
| |
| HEAD(ListVariable) returns position of first entry
| |
| TAIL(ListVariable) returns position of last entry
| |
| INSERT HEAD(ListVariable, EntryElement) add an entry to front of list
| |
| INSERT TAIL(ListVariable, EntryElement) add an entry to end of list
| |
| INSERT BEFORE(ListVariable, Index, EntryElement)
| |
| add an entry before given index
| |
| INSERT AFTER(ListVariable, Index, EntryElement)
| |
| add an entry after given index
| |
| INSERT AT(ListVariable, Index, EntryElement) add an entry at given index
| |
| | |
| REMOVE HEAD(ListVariable) removes and deletes first entry
| |
| REMOVE TAIL (ListVariable) removes and deletes last entry
| |
| REMOVE AT INDEX(ListVariable, Index) removes and deletes entry at given index
| |
| | |
| Variable [=] GET HEAD(ListVariable) returns first entry
| |
| Variable [=] GET TAIL(ListVariable) returns first entry
| |
| Variable [=] GET AT INDEX(ListVariable, Index) returns entry at given index
| |
| Pos = POS AT INDEX(ListVariable, Index) returns position at given index
| |
| | |
| ===Tree Functions===
| |
| ADD ROOT(TreeVariable, EntryElement) add root element of a tree
| |
| INSERT LEFT CHILD(TreeVariable, PosVariable, EntryElement)
| |
| add child to a node on the left of current
| |
| children
| |
| INSERT RIGHT CHILD(TreeVariable, PosVariable, EntryElement)
| |
| add child to a node on the right of current
| |
| children
| |
| INSERT CHILD(TreeVariable, PosVariable, EntryElement, Index)
| |
| add child to a node at given index (from
| |
| left)
| |
| | |
| n = CHILDREN(TreeVariable, PosVariable) number of children at a given position
| |
| Pos = PARENT(TreeVariable, PosVariable) Position of parent of a node
| |
| Pos = LEFT CHILD(TreeVariable, PosVariable) Position of leftmost child of a node
| |
| Pos = RIGHT CHILD(TreeVariable, PosVariable) Position of rightmost child of a node
| |
| Pos = CHILD(TreeVariable, PosVariable, Index) Position of indexed (from left) child of a
| |
| node
| |
| Pos = NEXT SIBLING(TreeVariable, PosVariable) Position of next sibling to right of a node
| |
| Pos = PREV SIBLING(TreeVariable, PosVariable) Position of previous sibling to right of a
| |
| node
| |
| | |
| Pos = NEXT DFS(TreeVariable, PosVariable) Position of next node in depth-first
| |
| pre-order traversal of a tree. If the position
| |
| variable is NULL, then the root is returned
| |
| Pos = NEXT POSTORDER DFS(TreeVariable, PosVariable)
| |
| Position of next node in depth-first
| |
| post-order traversal of a tree. If the position
| |
| variable is NULL, then the root is returned
| |
| Variable [=] GET LEFT CHILD(TreeVariable, PosVariable)
| |
| returns entry of leftmost child for a given
| |
| node
| |
| Variable [=] GET RIGHT CHILD(TreeVariable, PosVariable)
| |
| returns entry of rightmost child for a given
| |
| node
| |
| Variable [=] GET CHILD(TreeVariable, PosVariable, Index)
| |
| returns entry of child with given index
| |
| (from left) for a given node
| |
| | |
| ===Graph Functions===
| |
| REMOVE ALL LINKS(GraphVariable) clears links of a graph variable
| |
| SIZE LINKS(GraphVariable) number of links in graph
| |
| IS EMPTY LINKS(GraphVariable) TRUE if and only if graph has 0 links
| |
| | |
| FIRST LINK(GraphVariable) returns position of first link
| |
| NEXT LINK (GraphVariable, PosVariable) returns position of link following position
| |
| provided
| |
| PREV LINK (GraphVariable, PosVariable) returns position of link preceding position
| |
| provided
| |
| Variable [=] GET LINK(GraphVariable, PosVariable)
| |
| get link at position
| |
| CONTAINS LINK(GraphVariable, LinkVariable) TRUE if and only if graph variable contains
| |
| variable provided
| |
| REMOVE LINK(GraphVariable, PosVariable) remove and deletes link at position
| |
| SET LINK(GraphVariable, PosVariable, LinkVariable)
| |
| Set link at position
| |
| SET LINK(GraphVariable, PosVariable, entryIndex, Value)
| |
| Set value at specified index of link at
| |
| position
| |
| FIND LINK(GraphVariable, TmpVariable, Condition)
| |
| Return first position of link that satisfies the
| |
| condition
| |
| FIND NEXT LINK(GraphVariable, PosVariable, TmpVariable, Condition)
| |
| Return next position of a link that satisfies
| |
| the condition
| |
| SORT LINKS(GraphVariable, TmpVariable1, TmpVariable2, Condition)
| |
| Sort links according to condition
| |
| LINKED(GraphVariable, NodeVariable1, NodeVariable2, LinkType)
| |
| TRUE if the nodes are linked. Set LinkType
| |
| to 0 for direct links and 1 for indirect
| |