Next: , Up: Operators



4.8.1 Arithmetic & logical operators

Asymptote uses the standard binary arithmetic operators. However, when one integer is divided by another, both arguments are converted to real values before dividing and a real quotient is returned (since this is usually what is intended). The function int quotient(int x, int y) returns the greatest integer less than or equal to x/y. In all other cases both operands are promoted to the same type, which will also be the type of the result:

+
addition
-
subtraction
*
multiplication
/
division
%
modulo; the result always has the same sign as the divisor. In particular, this makes q*quotient(p,q)+p%q == p for all integers p and nonzero integers q.
^
power; if the exponent (second argument) is an int, recursive multiplication is used; otherwise, logarithms and exponentials are used. ** is a synonym for ^.

The usual boolean operators are also defined:

==
equals
!=
not equals
<
less than
<=
less than or equals
>=
greater than or equals
>
greater than
&&
and
||
or
^
xor
!
not

Asymptote also supports the C-like conditional syntax:

bool positive=(pi >= 0) ? true : false;