4. CyML Language Specification¶
This document specifies the CyML language, an extended Cython subset supported.
5. Cython file types¶
- The implementation files, carrying a
.pyxsuffix.
5.3. Conditional Statements¶
- IF
- IF/Else
- IF/ElseIf/Else
The ELIF and ELSE clauses are optional. An IF statement can appear
anywhere that a normal statement or declaration can appear
5.4. Integer For Loops¶
CyML recognises the usual Python for-in-range integer loop pattern:
for i in range(n):
...
Like other Python looping statements, break and continue may be used in the body, without the loop that have an else clause.
5.5. While Loop¶
- Like Python While loop
5.6. Function¶
- Parameters with declaration
- Default value is possible
5.7. Return Statement¶
- A function needs to return the same data type.
The following code is valid:
def fibonacci(int n):
if n <= 2:
return 1
else:
return fibonacci(n-1)+fibonacci(n-2)
5.8. Call functions¶
- Call to CyML functions are supported if the function
- is accessible on the module
- is accessible from import statement
5.9. Operators¶
Assignment
| Assign | b = a |
Unary operators
| UAdd | +a |
| USub | -a |
Binary operators
| Add | a + b |
| Sub | a - b |
| Mult | a * b |
| Div | a / b |
| FloorDiv | a // b |
| Pow | a ** b |
| Mod | a % b |
| LShift | a << b |
| RShift | a >> b |
| BitOr | a | b |
| BitXor | a ^ b |
| BitAnd | a & b |
Augmented assign statements
| AugAdd | a += b |
| AugSub | a -= b |
| AugMult | a *= b |
| AugDiv | a /= b |
Comparison Operators
| Eq | a == b |
| NotEq | a != b |
| Lt | a < b |
| LtE | a <= b |
| Gt | a > b |
| GtE | a >= b |
Bool Operators
| && | a and b |
| || | a or b |
5.10. Array creation routines¶
| `` `` | Return a new array of given shape and type, without initializing entries. |
| `` `` | Return a new array of given shape and type, filled with ones. |
| `` `` | Return a new array of given shape and type, filled with zeros. |
5.11. Mathematical functions¶
Trigonometric functions
sin(x) |
Trigonometric sine, element-wise. |
cos(x) |
Cosine elementwise. |
tan(x) |
Compute tangent element-wise. |
arcsin(x) |
Inverse sine, element-wise. |
arccos(x) |
Trigonometric inverse cosine, element-wise. |
arctan(x) |
Trigonometric inverse tangent, element-wise. |
Hyperbolic functions
sinh(x) |
Hyperbolic sine, element-wise. |
cosh(x) |
Hyperbolic cosine, element-wise. |
tanh(x) |
Compute hyperbolic tangent element-wise. |