[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
5.9.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:
-
+
-
-
-
*
-
/
-
%
modulo; the result always has the same sign as the divisor. In particular, this makes
q*quotient(p,q)+p%q == p
for all integersp
and nonzero integersq
.-
^
-
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:
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)
, and int NOT(int)
.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |