code: def _rg(self,lz):
          
          if isinstance(lz,numpy.ndarray):
              indx= (lz > self._precomputergLzmax)*(lz < self._precomputergLzmin)
              indxc= True^indx
              out= numpy.empty(lz.shape)
              out[indxc]= self._rgInterp(lz[indxc])
              out[indx]= numpy.array([potential.rl(self._pot,lz[indx][ii]) for ii in range(numpy.sum(indx))])
              return out
          else:
              if lz > self._precomputergLzmax or lz < self._precomputergLzmin:
                  return potential.rl(self._pot,lz)
              return numpy.atleast_1d(self._rgInterp(lz))
docs: NAME:
             _rg
          PURPOSE:
             calculate the radius of a circular orbit of Lz
          INPUT:
             lz - Angular momentum
          OUTPUT:
             radius
          HISTORY:
             2012-07-25 - Written - Bovy (IAS@MPIA)
          NOTE:
             seems to take about ~0.5 ms for a Miyamoto-Nagai potential; 
             ~0.75 ms for a MWPotential
             about the same with or without interpolation of the rotation curve
  
             Not sure what to do about negative lz...