Gerchberg–Saxton algorithm