def _vertex_equations_2D_slice(self, p_vals, x_variable, y_variable, range_x, range_y,
                               log_out):
     lower = p_vals.copy()
     upper = p_vals.copy()
     lower[x_variable] = min(range_x)
     upper[x_variable] = max(range_x)
     lower[y_variable] = min(range_y)
     upper[y_variable] = max(range_y)
     stack = DSCaseVertexEquationsFor2DSlice(self._swigwrapper, 
                                             lower._swigwrapper,
                                             upper._swigwrapper,
                                             x_variable,
                                             y_variable,
                                             log_out)
     vertices = []
     for i in xrange(DSStackCount(stack)):
         expressions = DSExpressionArrayFromVoid(DSStackPop(stack))
         expr0 = Expression(None)
         expr0._swigwrapper = DSExpressionAtIndexOfExpressionArray(expressions, 0)
         expr1 = Expression(None)
         expr1._swigwrapper = DSExpressionAtIndexOfExpressionArray(expressions, 1)
         vertices.append(Equations([str(expr0), str(expr1)], latex_symbols=self._latex))
         DSSecureFree(expressions)
     DSStackFree(stack)
     vertices.reverse()
     return vertices