Last modified 12 years ago
Last modified on 02/09/2012 04:48:26 PM
simple calculations
command: CALC <type> <&var> <=> <operand1> [<operation> [<operand2>]] [<p>]
parameters
- <type> parameter type: char
Determines type of operators <operand1>, <operand2> and result type. Possible values are "i" (integer), "r" (real), "s" (string) and "t" (time).
- <&var> parameter type: symbol address
Variable where to store the result of the calculation. This may be a local or global variable.
- <=> parameter type: constant
Must be "="-character.
- <operand1>, <operand2> parameter type: depends on <type>
operators
- <operation> parameter type: string
Operation to be applied to operators.
For detailed information see type table below.
type table
<type> | operation | <operand1> | <operand2> | result-type | task |
operations on integer numbers | |||||
i | + | i | i | i | addition of integers |
i | - | i | i | i | subtraction of integers |
i | * | i | i | i | multiplication of integers |
i | div | i | i | i | division of integers (no remainder) |
i | mod | i | i | i | remainder of integer division |
i | int | f | i | return integer value of float | |
operations on real numbers | |||||
r | + | r | r | r | addition of real numbers |
r | - | r | r | r | subtraction of real numbers |
r | * | r | r | r | multiplication of real numbers |
r | div | r | r | r | division of real numbers |
r | abs | r | r | remove sign | |
r | arccos | r | r | arccos of <operand1> in degrees | |
r | arcsin | r | r | arcsin of <operand1> in degrees | |
r | arctan | r | r | arctan of <operand1> in degrees | |
r | arctan2 | r | r | r | arctan of <operand1>/<operand2> in degrees |
r | cos | r | r | cosine of <operand1> (input in degrees) | |
r | sin | r | r | sine of <operand1> (input in degrees) | |
r | tan | r | r | tangens of <operand1> (input in degrees) | |
r | cosh | r | r | cosh of <operand1> | |
r | sinh | r | r | sinh of <operand1> | |
r | tanh | r | r | tanh of <operand1> | |
r | exp | r | r | exp(<operand1>) | |
r | ln | r | r | natural logarithm | |
r | log | r | r | decimal logarithm | |
r | power | r | r | r | exponentiation of <operand1> by <operand2> |
r | sqrt | r | r | square root of <operand1> | |
operations on strings | |||||
s | + | s | s | s | concatenation with blank |
s | parse | s | i | s | takes "<operand2>"-th substring of <operand1> |
s | extract | s | i(+i) | s | extracts <p> chars from pos <operand2> |
s | lower | s | s | s | turn one character after <operand2> into lower case |
s | lowercase | s | s | change <operand1> into lower case | |
s | upper | s | s | change <operand1> into upper case | |
s | phaseupper | s | s | pre-seed all lower case characters with V and return upper case string | |
s | doslash | s | s | replace back-slash by forward slash | |
s | qname | s | t | s | construct filename from station (<operand1>) and time (<operand2>) |
s | strlen | s | i | return length of <operand1> | |
operations on time values | |||||
t | tdiff | t | t | r | computes difference of absolute times in sec |
t | tadd | t | r | t | adds <operand2> secs to <operand1> |
t | julian | t | i | return julian day of <operand1> | |
t | cnv_julian | i | i | s | calc month and day out of year (<operand1>) and julian day (<operand2>) |
t | make_time | s | t | turn string "year month day hour minute second ms" into SH time string |
Note: The "extract" operation requires an additional parameter <p> specifying the number of characters to be extracted.
qualifier
- /fmt
Produces output in a special format. Format string must be entered as in C printf commands. The format string should be enclosed in "< >" brackets. Note the automatic lowercase to uppercase conversion of the command line interpreter. To prevent this conversion for a single character within a format string precede this character by a "@"-sign (Example: /fmt=<%5.2@f> creates real number in floating point format "%5.2f" with two decimal digits).
examples
- calc r &res = 2.0 * ^delta(1)
- computes real multiplication of sample distance of second trace by two and stores the result in variable "res"
- calc s &str = teststring
- copies string "TESTSTRING" to variable "str"
- calc r &res = ^maxval(2) sqrt
- computes square root of maximum value of trace 2 and stores result in variable "res"