maths - Faust Libraries

# maths.lib

Mathematic library for Faust. Its official prefix is `ma`.

## Functions Reference

### `(ma.)SR`

Current sampling rate. Constant during program execution.

#### Usage

    SR : _

### `(ma.)BS`

Current block-size. Can change during the execution.

#### Usage

    BS : _

### `(ma.)PI`

Constant PI in double precision.

#### Usage

    PI : _

### `(ma.)EPSILON`

Constant EPSILON in simple/double/quad precision.

#### Usage

    EPSILON : _

### `(ma.)MIN`

Constant MIN in simple/double/quad precision (minimal positive value).

#### Usage

    MIN : _

### `(ma.)INFINITY`

Constant INFINITY in simple/double/quad precision (maximal positive value).

#### Usage

    INFINITY : _

### `(ma.)FTZ`

Flush to zero: force samples under the "maximum subnormal number" to be zero. Usually not needed in C++ because the architecture file take care of this, but can be useful in JavaScript for instance.

#### Usage

    _ : FTZ : _

- See : http://docs.oracle.com/cd/E19957-01/806-3568/ncg_math.html

### `(ma.)neg`

Invert the sign (-x) of a signal.

#### Usage

    _ : neg : _

### `(ma.)sub(x,y)`

Subtract `x` and `y`.

### `(ma.)inv`

Compute the inverse (1/x) of the input signal.

#### Usage

    _ : inv : _

### `(ma.)cbrt`

Computes the cube root of of the input signal.

#### Usage

    _ : cbrt : _

### `(ma.)hypot`

Computes the euclidian distance of the two input signals sqrt(xx+yy) without undue overflow or underflow.

#### Usage

    _,_ : hypot : _

### `(ma.)ldexp`

Takes two input signals: x and n, and multiplies x by 2 to the power n.

#### Usage

    _,_ : ldexp : _

### `(ma.)scalb`

Takes two input signals: x and n, and multiplies x by 2 to the power n.

#### Usage

    _,_ : scalb : _

### `(ma.)log1p`

Computes log(1 + x) without undue loss of accuracy when x is nearly zero.

#### Usage

    _ : log1p : _

### `(ma.)logb`

Return exponent of the input signal as a floating-point number.

#### Usage

    _ : logb : _

### `(ma.)ilogb`

Return exponent of the input signal as an integer number.

#### Usage

    _ : ilogb : _

### `(ma.)log2`

Returns the base 2 logarithm of x.

#### Usage

    _ : log2 : _

### `(ma.)expm1`

Return exponent of the input signal minus 1 with better precision.

#### Usage

    _ : expm1 : _

### `(ma.)acosh`

Computes the principle value of the inverse hyperbolic cosine of the input signal.

#### Usage

    _ : acosh : _

### `(ma.)asinh`

Computes the inverse hyperbolic sine of the input signal.

#### Usage

    _ : asinh : _

### `(ma.)atanh`

Computes the inverse hyperbolic tangent of the input signal.

#### Usage

    _ : atanh : _

### `(ma.)sinh`

Computes the hyperbolic sine of the input signal.

#### Usage

    _ : sinh : _

### `(ma.)cosh`

Computes the hyperbolic cosine of the input signal.

#### Usage

    _ : cosh : _

### `(ma.)tanh`

Computes the hyperbolic tangent of the input signal.

#### Usage

    _ : tanh : _

### `(ma.)erf`

Computes the error function of the input signal.

#### Usage

    _ : erf : _

### `(ma.)erfc`

Computes the complementary error function of the input signal.

#### Usage

    _ : erfc : _

### `(ma.)gamma`

Computes the gamma function of the input signal.

#### Usage

    _ : gamma : _

### `(ma.)lgamma`

Calculates the natural logorithm of the absolute value of the gamma function of the input signal.

#### Usage

    _ : lgamma : _

### `(ma.)J0`

Computes the Bessel function of the first kind of order 0 of the input signal.

#### Usage

    _ : J0 : _

### `(ma.)J1`

Computes the Bessel function of the first kind of order 1 of the input signal.

#### Usage

    _ : J1 : _

### `(ma.)Jn`

Computes the Bessel function of the first kind of order n (first input signal) of the second input signal.

#### Usage

    _,_ : Jn : _

### `(ma.)Y0`

Computes the linearly independent Bessel function of the second kind of order 0 of the input signal.

#### Usage

    _ : Y0 : _

### `(ma.)Y1`

Computes the linearly independent Bessel function of the second kind of order 1 of the input signal.

#### Usage

    _ : Y0 : _

### `(ma.)Yn`

Computes the linearly independent Bessel function of the second kind of order n (first input signal) of the second input signal.

#### Usage

    _,_ : Yn : _

### `(ma.)fabs`, `(ma.)fmax`, `(ma.)fmin`

Just for compatibility...

    fabs = abs
    fmax = max
    fmin = min

### `(ma.)np2`

Gives the next power of 2 of x.

#### Usage

    np2(n) : _

Where:

- `n`: an integer

### `(ma.)frac`

Gives the fractional part of n.

#### Usage

    frac(n) : _

Where:

- `n`: a decimal number

### `(ma.)modulo`

Modulus operation.

#### Usage

    modulo(x,N) : _

Where:

- `x`: the numerator
- `N`: the denominator

### `(ma.)isnan`

Return non-zero if x is a NaN.

#### Usage

    isnan(x)
    _ : isnan : _

Where:

- `x`: signal to analyse

### `(ma.)isinf`

Return non-zero if x is a positive or negative infinity.

#### Usage

    isinf(x)
    _ : isinf : _

Where:

- `x`: signal to analyse

### `(ma.)chebychev`

Chebychev transformation of order n.

#### Usage

    _ : chebychev(n) : _

Where:

- `n`: the order of the polynomial

#### Semantics

    T[0](x) = 1,
    T[1](x) = x,
    T[n](x) = 2x*T[n-1](x) - T[n-2](x)

#### Reference

- http://en.wikipedia.org/wiki/Chebyshev_polynomial

### `(ma.)chebychevpoly`

Linear combination of the first Chebyshev polynomials.

#### Usage

    _ : chebychevpoly((c0,c1,...,cn)) : _

Where:

- `cn`: the different Chebychevs polynomials such that: chebychevpoly((c0,c1,...,cn)) = Sum of chebychev(i)*ci

#### Reference

- http://www.csounds.com/manual/html/chebyshevpoly.html

### `(ma.)diffn`

Negated first-order difference.

#### Usage

    _ : diffn : _

### `(ma.)signum`

The signum function signum(x) is defined as -1 for x<0, 0 for x==0, and 1 for x>0.

#### Usage

    _ : signum : _

### `(ma.)nextpow2`

The nextpow2(x) returns the lowest integer m such that 2^m >= x.

#### Usage

    2^nextpow2(n)

Useful for allocating delay lines, e.g.,

    delay(2^nextpow2(maxDelayNeeded), currentDelay);

### `(ma.)zc`

Indicator function for zero-crossing: it returns 1 if a zero-crossing occurs, 0 otherwise.

#### Usage

    _ : zc : _

## Averaging Functions

### `(ma.)avg_rect`

Moving average.

#### Usage

    _ : avg_rect(period) : _

Where:

- `period` is the averaging frame in seconds

### (ma.)avg_tau

Averaging function based on a one-pole filter and the tau response time. Tau represents the effective length of the one-pole impulse response, that is, tau is the integral of the filter's impulse response. This response is slower to reach the final value but has less ripples in non-steady signals.

#### Usage

    _ avg_tau(period) : _

Where:

- `period` is the time, in seconds, for the system to decay by 1/e, or to reach 1-1/e of its final value.

#### Reference

- https://ccrma.stanford.edu/~jos/mdft/Exponentials.html

### (ma.)avg_t60

Averaging function based on a one-pole filter and the t60 response time. This response is particularly useful when the system is required to reach the final value after about `period` seconds.

#### Usage

    _ avg_t60(period) : _

Where:

- `period` is the time, in seconds, for the system to decay by 1/1000, or to reach 1-1/1000 of its final value.

#### Reference

- https://ccrma.stanford.edu/~jos/mdft/Audio_Decay_Time_T60.html

### (ma.)avg_t19

Averaging function based on a one-pole filter and the t19 response time. This response is close to the moving-average algorithm as it roughly reaches the final value after `period` seconds and shows about the same oscillations for non-steady signals.

#### Usage

    _ avg_t19(period) : _

Where:

- `period` is the time, in seconds, for the system to decay by 1/e^2.2, or to reach 1-1/e^2.2 of its final value.

#### Reference

Zölzer, U. (2008). Digital audio signal processing (Vol. 9). New York: Wiley.

#### Search

From here you can search these documents. Enter your search terms below.

#### Keyboard Shortcuts

Keys | Action
--- | ---
`?` | Open this help
`n` | Next page
`p` | Previous page
`s` | Search