Next: Complex Arithmetic, Up: Arithmetic

The following functions are available for working with complex numbers. Each expects a single argument. They are called mapping functions because when given a matrix argument, they apply the given function to each element of the matrix.

— Mapping Function: **ceil** (`x`)

Return the smallest integer not less than

x. Ifxis complex, return`ceil (real (`

x`)) + ceil (imag (`

x`)) * I`

.

— Mapping Function: **exp** (`x`)

Compute the exponential of

x. To compute the matrix exponential, see Linear Algebra.

— Mapping Function: **fix** (`x`)

Truncate

xtoward zero. Ifxis complex, return`fix (real (`

x`)) + fix (imag (`

x`)) * I`

.

— Mapping Function: **floor** (`x`)

Return the largest integer not greater than

x. Ifxis complex, return`floor (real (`

x`)) + floor (imag (`

x`)) * I`

.

— Loadable Function: `g` = **gcd** (`a1, `

— Loadable Function: [`g`, `v1`, `...`] = **gcd** (`a1, `

`...`

)— Loadable Function: [

`...`

)If a single argument is given then compute the greatest common divisor of the elements of this argument. Otherwise if more than one argument is given all arguments must be the same size or scalar. In this case the greatest common divisor is calculated for element individually. All elements must be integers. For example,

gcd ([15, 20]) => 5and

gcd ([15, 9], [20 18]) => 5 9Optional return arguments

v1, etc, contain integer vectors such that,g=v1.*a1+v2.*a2+...For backward compatiability with previous versions of this function, when all arguments are scalr, a single return argument

v1containing all of the values ofv1,...is acceptable.

— Mapping Function: **lcm** (`x, `

`...`

)Compute the least common multiple of the elements elements of

x, or the list of all the arguments. For example,lcm (a1, ..., ak)is the same as

lcm ([a1, ..., ak]).All elements must be the same size or scalar.

— Mapping Function: **log** (`x`)

Compute the natural logarithm for each element of

x. To compute the matrix logarithm, see Linear Algebra.

— Mapping Function: **log2** (`x`)

— Mapping Function: [`f`, `e`] = **log2** (`x`)

— Mapping Function: [

Compute the base-2 logarithm of

x. With two outputs, returnsfandesuch that 1/2 <= abs(f) < 1 and x = f * 2^e.

— Mapping Function: **max** (`x, y, dim`)

— Mapping Function: [`w`, `iw`] = **max** (`x`)

— Mapping Function: [

For a vector argument, return the maximum value. For a matrix argument, return the maximum value from each column, as a row vector, or over the dimension

dimif defined. For two matrices (or a matrix and scalar), return the pair-wise maximum. Thus,max (max (x))returns the largest element of

x, andmax (2:5, pi) => 3.1416 3.1416 4.0000 5.0000compares each element of the range

`2:5`

with`pi`

, and returns a row vector of the maximum values.For complex arguments, the magnitude of the elements are used for comparison.

If called with one input and two output arguments,

`max`

also returns the first index of the maximum value(s). Thus,[x, ix] = max ([1, 3, 5, 2, 5]) => x = 5 ix = 3

— Mapping Function: **min** (`x, y, dim`)

— Mapping Function: [`w`, `iw`] = **min** (`x`)

— Mapping Function: [

For a vector argument, return the minimum value. For a matrix argument, return the minimum value from each column, as a row vector, or over the dimension

dimif defined. For two matrices (or a matrix and scalar), return the pair-wise minimum. Thus,min (min (x))returns the smallest element of

x, andmin (2:5, pi) => 2.0000 3.0000 3.1416 3.1416compares each element of the range

`2:5`

with`pi`

, and returns a row vector of the minimum values.For complex arguments, the magnitude of the elements are used for comparison.

If called with one input and two output arguments,

`min`

also returns the first index of the minimum value(s). Thus,[x, ix] = min ([1, 3, 0, 2, 5]) => x = 0 ix = 3

— Mapping Function: **mod** (`x, y`)

Compute modulo function, using

x - y .* floor (x ./ y)Note that this handles negative numbers correctly:

`mod (-1, 3)`

is 2, not -1 as`rem (-1, 3)`

returns. Also,`mod (`

x`, 0)`

returnsx.An error message is printed if the dimensions of the arguments do not agree, or if either of the arguments is complex.

— Function File: **nextpow2** (`x`)

If

xis a scalar, returns the first integernsuch that 2^n >= abs (x).If

xis a vector, return`nextpow2 (length (`

x`))`

.

— Mapping Function: **pow2** (`x`)

— Mapping Function:**pow2** (`f, e`)

— Mapping Function:

With one argument, computes 2 .^ x for each element of

x. With two arguments, returns f .* (2 .^ e).

— Mapping Function: **rem** (`x, y`)

Return the remainder of

x`/`

y, computed using the expressionx - y .* fix (x ./ y)An error message is printed if the dimensions of the arguments do not agree, or if either of the arguments is complex.

— Mapping Function: **round** (`x`)

Return the integer nearest to

x. Ifxis complex, return`round (real (`

x`)) + round (imag (`

x`)) * I`

.

— Mapping Function: **sign** (`x`)

Compute the signum function, which is defined as

-1, x < 0; sign (x) = 0, x = 0; 1, x > 0.For complex arguments,

`sign`

returns`x ./ abs (`

x`)`

.

— Mapping Function: **sqrt** (`x`)

Compute the square root of

x. Ifxis negative, a complex result is returned. To compute the matrix square root, see Linear Algebra.