<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def inside(points, polygons, short_circuit='any', precision=0.001):
 """ Test whether each of the points is within the given set of polygons. Parameters points : array-like[N][2] or list of array-like[N][2] Coordinates of the points to be tested or groups of points to be tested together. polygons : polygon or array-like Polygons to be tested against. Must be a ``PolygonSet``, ``CellReference``, ``CellArray``, or an array. The array may contain any of the previous objects or an array-like[N][2] of vertices of a polygon. short_circuit : {'any', 'all'} If `points` is a list of point groups, testing within each group will be short-circuited if any of the points in the group is inside ('any') or outside ('all') the polygons. If `points` is simply a list of points, this parameter has no effect. precision : float Desired precision for rounding vertice coordinates. Returns ------- out : tuple Tuple of booleans indicating if each of the points or point groups is inside the set of polygons. """

    poly = []
    if isinstance(polygons, PolygonSet):
        poly.extend(polygons.polygons)
    elif isinstance(polygons, CellReference) or isinstance(
            polygons, CellArray):
        poly.extend(polygons.get_polygons())
    else:
        for obj in polygons:
            if isinstance(obj, PolygonSet):
                poly.extend(obj.polygons)
            elif isinstance(obj, CellReference) or isinstance(obj, CellArray):
                poly.extend(obj.get_polygons())
            else:
                poly.append(obj)
    if hasattr(points[0][0], '__iter__'):
        pts = points
        sc = 1 if short_circuit == 'any' else -1
    else:
        pts = (points, )
        sc = 0
    return clipper.inside(pts, poly, sc, 1 / precision)