import math


def gam_prophoto(rgb):
    """
    Convert an array of linear-light prophoto-rgb  in the range 0.0-1.0 to gamma corrected form.

    Transfer curve is gamma 1.8 with a small linear portion.
    """

    et = 1 / 512

    result = []
    for i in rgb:
        # Mirror linear nature of algorithm on the negative axis
        abs_i = abs(i)
        if abs_i >= et:
            result.append(math.copysign(math.pow(abs_i, 1 / 1.8), i))
        else:
            result.append(16 * i)
    return result