Next: Self & prefix operators, Up: Operators [Contents][Index]
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:
+
-
*
/
%
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:
==
!=
<
<=
>=
>
&&
&
||
|
^
!
not
Asymptote
also supports the C-like conditional syntax:
bool positive=(pi > 0) ? true : false;
The function T interp(T a, T b, real t)
returns (1-t)*a+t*b
for nonintegral built-in arithmetic types T
. If a
and
b
are pens, they are first promoted to the same color space.
Asymptote
also defines bitwise functions int AND(int,int)
,
int OR(int,int)
, int XOR(int,int)
, int NOT(int)
,
int CLZ(int)
(count leading zeros), and int CTZ(int)
(count trailing zeros).
Next: Self & prefix operators, Up: Operators [Contents][Index]