Mathematical Operations: Arithmetic and Logic Operators

## - , + , && , || , * , / , ^ , %

```
- a  (no rate restriction)

+ a  (no rate restriction)

a && b  (logical AND; not audio-rate)

a || b  (logical OR; not audio-rate)

a +  b  (no rate restriction)

a -  b  (no rate restriction)

a *  b  (no rate restriction)

a /  b  (no rate restriction)

a ^  b  (b not audio-rate)

a %  b  (no rate restriction)

```

### Description

where the arguments a and b may be further expressions.

Arithmetic operators perform operations of change-sign (negate), don't-change-sign, logical AND logical OR, add, subtract, multiply and divide. Note that a value or an expression may fall between two of these operators, either of which could take it as its left or right argument, as in

`  a + b * c.`

In such cases three rules apply:

1. * and / bind to their neighbors more strongly than + and -. Thus the above expression is taken as

`  a + (b * c)`

with * taking b and c and then + taking a and b * c.

2. + and - bind more strongly than &&, which in turn is stronger than ||:

`  a && b - c || d`

is taken as

`  (a && (b - c)) || d`

3. When both operators bind equally strongly, the operations are done left to right:

`  a - b - c `

is taken as

`  (a - b) - c`

Parentheses may be used as above to force particular groupings.

The operator ^ raises a to the b power. b may not be audio-rate. Use with caution as precedence may not work correctly. See pow. New in Csound version 3.493.

The operator % returns the value of a reduced by b, so that the result, in absolute value, is that of the absolute value of b, by repeated subtraction. This is the same as modulus function in integers. New in Csound version 3.50.

Mathematical Operations: Arithmetic and Logic Operators