Conversion from RGB to CIELAB with a complex formula let deltaF: TransformBlock = { f in
        let transformation = (f &gt; pow((6.0/29.0), 3.0)) ? pow(f, 1.0/3.0) : (1/3) * pow((29.0/6.0), 2.0) * f + 4/29.0

        return (transformation)
    }


Says here that this expression is too complex to be solved in reasonable time. Is there any way to simplify it?

This code is meant to convert RGB colors into CIELAB colors. I've done some research online and couldn't find an updated version of that code. 

func CIE_LAB() -&gt; (l: CGFloat, a: CGFloat, b: CGFloat, alpha: CGFloat) {
    // Get XYZ
    let xyzT = xyz()
    let x = xyzT.x/95.047
    let y = xyzT.y/100.000
    let z = xyzT.z/108.883

    // Transfrom XYZ to L*a*b
    let deltaF: TransformBlock = { f in
        let transformation = (f &gt; pow((6.0/29.0), 3.0)) ? pow(f, 1.0/3.0) : (1/3) * pow((29.0/6.0), 2.0) * f + 4/29.0

        return (transformation)
    }
    let X = deltaF(x)
    let Y = deltaF(y)
    let Z = deltaF(z)
    let L = 116*Y - 16
    let a = 500 * (X - Y)
    let b = 200 * (Y - Z)

    return (L, a, b, xyzT.alpha)
}
The main thing that would speed it up is to not constantly calculate constant values. For example, you can replace:

pow ((6.0 / 29.0), 3.0)


with 

0.00885645167904


Preferably you'll give it a name like:

let threshold = 0.00885645167904


Likewise for the other call to pow(). pow() is a very expensive function to compute, so removing it can be a big win.