GPS algorithms