manpagez: man pages & more
info asymptote
Home | html | info | man
 [ << ] [ < ] [ Up ] [ > ] [ >> ] [Top] [Contents] [Index] [ ? ]

### 6.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:

+

-

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 (with conditional evaluation of right-hand argument)

&

and

||

or (with conditional evaluation of right-hand argument)

|

or

^

xor

!

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).

 [ << ] [ < ] [ Up ] [ > ] [ >> ] [Top] [Contents] [Index] [ ? ]

This document was generated on May 24, 2014 using texi2html 5.0.