return [rgb_tuple[0], rgb_tuple[1], rgb_tuple[2], 1]


if __name__ == '__main__':
    ''' Cool looking seed values
    2, 52, 94, 124396, 123456789, 123454321'''
    from function_generator import FunctionGenerator as FG
    unary_ops = {
        "sin": lambda x: np.sin(x),
        "cos": lambda x: np.cos(x),
        "tan": lambda x: np.tan(x),
        "sinh": lambda x: np.sinh(x),
        "cosh": lambda x: np.cosh(x),
        "tanh": lambda x: np.tanh(x),
        "repr": lambda x: 1 / x,
    }
    f_gen = FG(unary_op=unary_ops)
    f1 = f_gen.generate_function(rand_seed=5)

    def f(z):
        ans = f1(z)
        if np.isfinite(ans):
            return ans
        else:
            return 0

    d = Domain(-3, 3, -3, 3)
    f_p = FunctionPlot(f, domain_colouring, d, 512, 512, grid=False)
    f_p.save()
    f_p.plot()
    "repr": lambda x: 1 / complex(x),
    "exp": lambda x: np.exp(x),
    "log": lambda x: np.log(x),
}
binary_ops = {
    "add": lambda x, y: complex(x) + complex(y),
    "sub": lambda x, y: complex(x) - complex(y),
    "mul": lambda x, y: complex(x) * complex(y),
    "div": lambda x, y: complex(x) / complex(y),
}

while True:
    done = False
    try:
        f_gen = FG(unary_op=unary_ops, binary_op=binary_ops)
        f1 = f_gen.generate_function()

        def f(z):
            ans = f1(z)
            if np.isfinite(ans):
                return ans
            else:
                return 0

        d = d_c.Domain(-3, 3, -3, 3)
        f_p = d_c.FunctionPlot(f,
                               d_c.domain_colouring,
                               d,
                               512,
                               512,
                               grid=False)