module Util where tripleDotProduct :: (Double, Double, Double) -> (Double, Double, Double) -> Double tripleDotProduct (a, b, c) (d, e, f) = a * d + b * e + c * f fromLinear :: Double -> Double fromLinear c = if c <= 0.0031308 then 12.92 * c else 1.055 * (c ** (1 / 2.4)) - 0.055 toLinear :: Double -> Double toLinear c = if c >= 0.04045 then ((c + 0.055) / (1 + 0.055)) ** 2.4 else c / 12.92