updated GEQRT to use optional workspace