added unit circle optimisation to complex