
{{alias}}( P, Q, x )
    Evaluates a rational function using double-precision floating-point
    arithmetic.

    A rational function `f(x)` is defined as

               P(x)
        f(x) = ----
               Q(x)

    where both `P(x)` and `Q(x)` are polynomials in `x`.

    The coefficients for both `P` and `Q` should be sorted in ascending degree.

    For polynomials of different degree, the coefficient array for the lower
    degree polynomial should be padded with zeros.

    Parameters
    ----------
    P: Array<number>
        Numerator polynomial coefficients sorted in ascending degree.

    Q: Array<number>
        Denominator polynomial coefficients sorted in ascending degree.

    x: number
        Value at which to evaluate the rational function.

    Returns
    -------
    out: number
        Evaluated rational function.

    Examples
    --------
    // 2x^3 + 4x^2 - 5x^1 - 6x^0
    > var P = [ -6.0, -5.0, 4.0, 2.0 ];

    // 0.5x^1 + 3x^0
    > var Q = [ 3.0, 0.5, 0.0, 0.0 ]; // zero-padded

    // Evaluate the rational function:
    > var v = {{alias}}( P, Q, 6.0 )
    90.0


{{alias}}.factory( P, Q )
    Returns a function for evaluating a rational function using double-precision
    floating-point arithmetic.

    Parameters
    ----------
    P: Array<number>
        Numerator polynomial coefficients sorted in ascending degree.

    Q: Array<number>
        Denominator polynomial coefficients sorted in ascending degree.

    Returns
    -------
    fcn: Function
        Function for evaluating a rational function.

    Examples
    --------
    > var P = [ 20.0, 8.0, 3.0 ];
    > var Q = [ 10.0, 9.0, 1.0 ];
    > var f = {{alias}}.factory( P, Q );

    // (20*10^0 + 8*10^1 + 3*10^2) / (10*10^0 + 9*10^1 + 1*10^2):
    > var v = f( 10.0 )
    2.0

    // (20*2^0 + 8*2^1 + 3*2^2) / (10*2^0 + 9*2^1 + 1*2^2):
    > v = f( 2.0 )
    1.5

    See Also
    --------

