from __builtin__ import round as _round

if False:
    from typing import Dict, List, Tuple, Union, Optional


def smoothmap(min, max, x):
    """
    Returns the value of a smooth remapping function.
    
    performs a smooth Hermite interpolation between 0 and 1 in the interval min to max,
    but does not clamp the range
    
    :rtype: float
    """
    pass


def blend(a, b, weight='0.5'):
    """
    blend(a, b[, weight=0.5]) :
    Blends values a and b according to normalized weight w,
    returns a for weight == 0.0 and b for weight = 1.0, a*(1.0-weight)+b*weight in between
    
    :rtype: float
    """
    pass


def smoothstep(min, max, x):
    """
    Returns the value of a smooth step function.
    
    Returns 0 if x < min, 1 if x > max, and performs a smooth Hermite
    interpolation between 0 and 1 in the interval min to max.
    
    :rtype: float
    """
    pass


def linmap(min, max, x):
    """
    Returns the value of a linear remapping function.
    
    performs a linear interpolation between 0 and 1 in the interval min to max,
    but does not clamp the range
    
    :rtype: float
    """
    pass


def conjugate(x):
    """
    the conjugate part of x
    """
    pass


def linstep(min, max, x):
    """
    Returns the value of a linear step function.
    
    Returns 0 if x < min, 1 if x > max, and performs a linear
    interpolation between 0 and 1 in the interval min to max.
    
    :rtype: float
    """
    pass


def real(x):
    """
    the real part of x
    """
    pass


def imag(x):
    """
    the imaginary part of x
    """
    pass


def setRange(x='0.0', oldmin='0.0', oldmax='1.0', newmin='0.0', newmax='1.0'):
    """
    Resets x range from x linear interpolation of oldmin to oldmax to x linear interpolation from newmin to newmax
    
    :rtype: float
    """
    pass


def round(value, ndigits='0'):
    """
    round(number[, ndigits]) -> float
    Round a number to a given precision in decimal digits (default 0 digits).
    This always returns a floating point number.  Precision may be negative.
    This builtin function was overloaded in mathutils to work on complex numbers,
    in that case rel and imaginary values are rounded separately
    """
    pass


def hermiteInterp(x='0.0', y0='0.0', y1='1.0', s0='0.0', s1='0.0'):
    """
    Hermite interpolation of x between points y0 and y1 of tangent slope s0 and s1
    
    :rtype: float
    """
    pass


def clamp(x='0.0', min='0.0', max='1.0'):
    """
    Clamps the value x between min and max
    
    :rtype: float
    """
    pass


def hermite(x='0.0', v0='0.0', v1='0.0', s0='0.0', s1='0.0'):
    """
    As the MEL command : This command returns x point along on x hermite curve from the five given control arguments.
    The first two arguments are the start and end points of the curve, respectively.
    The next two arguments are the tangents of the curve at the start point and end point of the curve, respectively.
    The fifth argument, parameter, specifies the point on the hermite curve that is returned by this function.
    This parameter is the unitized distance along the curve from the start point to the end point.
    A parameter value of 0.0 corresponds to the start point and x parameter value of 1.0 corresponds to the end point of the curve.
    
    :rtype: float
    """
    pass


def gamma(c, g):
    """
    Gamma color correction of c with a single scalar gamma value g
    
    :rtype: float
    """
    pass
