(knot_vector, decimals=18)
return knot_vector_out
Normalizes the input knot vector to [0, 1] domain.

    :param knot_vector: knot vector to be normalized
    :type knot_vector: list, tuple
    :param decimals: rounding number
    :type decimals: int
    :return: normalized knot vector
    :rtype: list
Normalizes the input knot vector to [0, 1] domain.
Normalizes the input knot vector to [ 0 1 ] domain .
def normalize(knot_vector, decimals=18):
    """ Normalizes the input knot vector to [0, 1] domain.

    :param knot_vector: knot vector to be normalized
    :type knot_vector: list, tuple
    :param decimals: rounding number
    :type decimals: int
    :return: normalized knot vector
    :rtype: list
    """
    try:
        if knot_vector is None or len(knot_vector) == 0:
            raise ValueError("Input knot vector cannot be empty")
    except TypeError as e:
        print("An error occurred: {}".format(e.args[-1]))
        raise TypeError("Knot vector must be a list or tuple")
    except Exception:
        raise

    first_knot = float(knot_vector[0])
    last_knot = float(knot_vector[-1])
    denominator = last_knot - first_knot

    knot_vector_out = [float(("{:." + str(decimals) + "f}").format((float(kv) - first_knot) / denominator))
                       for kv in knot_vector]

    return knot_vector_out
def normalize ( knot_vector , decimals = 18 ) : try : if knot_vector is None or len ( knot_vector ) == 0 : raise ValueError ( "Input knot vector cannot be empty" ) except TypeError as e : print ( "An error occurred: {}" . format ( e . args [ - 1 ] ) ) raise TypeError ( "Knot vector must be a list or tuple" ) except Exception : raise first_knot = float ( knot_vector [ 0 ] ) last_knot = float ( knot_vector [ - 1 ] ) denominator = last_knot - first_knot knot_vector_out = [ float ( ( "{:." + str ( decimals ) + "f}" ) . format ( ( float ( kv ) - first_knot ) / denominator ) ) for kv in knot_vector ] return knot_vector_out