This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
trainingtutorial:create_code [2009/12/22 14:42] shona.weldon |
trainingtutorial:create_code [2009/12/22 15:12] (current) shona.weldon |
||
---|---|---|---|
Line 2: | Line 2: | ||
The obvious way to create code is to just type it in but there are also some features in the [[trainingtutorial:documenter_tour#procedure editor dialogue]] that will help. | The obvious way to create code is to just type it in but there are also some features in the [[trainingtutorial:documenter_tour#procedure editor dialogue]] that will help. | ||
+ | |||
+ | For lots of tips on tool coding see: [[https://www.whatiftechnologies.com/doku.php?id=how_tos|How Tos]] | ||
===== Clicking in variable and informant names ===== | ===== Clicking in variable and informant names ===== | ||
Line 9: | Line 11: | ||
It is VERY important to note that the dimensions inside the square brackets "[]" is ONLY guidance for the user and is completely ignored by the parser. It can happen that these indicies get out of sync with the code and so they should be considered questionable and verified with a seeshape (varname[]) whenever you aren't sure. | It is VERY important to note that the dimensions inside the square brackets "[]" is ONLY guidance for the user and is completely ignored by the parser. It can happen that these indicies get out of sync with the code and so they should be considered questionable and verified with a seeshape (varname[]) whenever you aren't sure. | ||
- | ===== <Ctrl> Double Click in left box ===== | + | ===== <Ctrl> Double Click in left hand panel ===== |
This operation gives you the properties dialog for whatever you select. This is useful for checking shape, history, and notes information for variables and for checking element names for informants. | This operation gives you the properties dialog for whatever you select. This is useful for checking shape, history, and notes information for variables and for checking element names for informants. | ||
Line 22: | Line 24: | ||
===== Parser Important Information and Limitations ===== | ===== Parser Important Information and Limitations ===== | ||
- | - The parser reads and executes left to right ALWAYS, it does not obey regular math ordering - BEDMAS (brackets, exponents, division, multiplication, addition, subtraction) | + | * The parser reads and executes left to right ALWAYS, it does not obey regular math ordering - BEDMAS (brackets, exponents, division, multiplication, addition, subtraction) |
- | - Multiplication is NOT "Matrix" multiplication it is cell by cell multiplication with matching of the indicies. When there is a dimension in | + | * Multiplication is NOT "Matrix" multiplication it is cell by cell multiplication with matching of the indicies. When there is a dimension in |
+ | * Nesting of tool calls works to any depth, however, it can only be done for the left most inputs of the inputs for example: | ||
+ | **Example 1** Nesting: | ||
+ | * This works (because the sum is the first input to the booleq tool): | ||
+ | <code>A[] = booleq (sum (B[x]; dim=xName), 0) </code> | ||
+ | * but this does not (because the sum is now the second input to the booleq tool) | ||
+ | <code>A[] = booleq (0, sum (B[x]; dim=xName)) </code> | ||
+ | **Example 2** Nesting with infix | ||
+ | * Similarly for infix calling of tools, this works (because the sum is the first input to the "+" tool): | ||
+ | <code>A[] = sum (B[x]; dim=xName) + 1 </code> | ||
+ | * but this does not (because the sum is now the second input to the "+" tool) | ||
+ | <code>A[] =1 + sum (B[x]; dim=xName) </code> | ||