Implements implicit plotting using interval arithmetic.

The interval arithmetic used here uses numpy and does not round up and hence is 
not accurate. But it is sufficient for plotting. 

Examples:

```python

  
plot_implicit(Eq(y**2, x**3 - x), (x, -5, 5), (y, -4, 4))
plot_implicit(y > 1 / x, (x, -5, 5), (y, -2, 2))
plot_implicit(y < 1 / tan(x), (x, -5, 5), (y, -2, 2))
plot_implicit(y >= 2 * sin(x) * cos(x), (x, -5, 5), (y, -2, 2))
plot_implicit(y <= x**2, (x, -3, 3), (y, -1, 5))
plot_implicit(Eq(x**2 + y**2, 3), (x, -4, 4), (y, -4, 4))

```
The implicit plotting module presently supports the following functions in an 
expression.
exp, log, sin, cos, tan, asin, acos, atan, floor, ceiling, Max, Min, sinh, 
cosh, tanh, asinh, acosh, atanh.
Only integer powers and sqrt are supported presently.

The plots does domain tracking and does not plot anything that is outside the 
domain of the function.

You can merge this Pull Request by running:

  git pull https://github.com/catchmrbharath/sympy newinterval

Or you can view, comment on it, or merge it online at:

  https://github.com/sympy/sympy/pull/1370

-- Commit Summary --

* Added interval arithmetic module
* Added interval functions to experimental_lambdify
* Added ImplicitSeries for implicit plotting
* Added the matplotlib backend for implicit plotting
* Added plot_implicit function
* fixed square root and added comments
* import fix in experimental_lambdify
* Added NotImplemented error for functions that are not implemented
* formatting changes
* Added tests for plot_implicit

-- File Changes --

M sympy/__init__.py (2)
M sympy/plotting/__init__.py (2)
M sympy/plotting/experimental_lambdify.py (33)
A sympy/plotting/intervalmath/__init__.py (2)
A sympy/plotting/intervalmath/interval_arithmetic.py (490)
A sympy/plotting/intervalmath/lib_interval.py (377)
A sympy/plotting/intervalmath/tests/test_interval_functions.py (290)
A sympy/plotting/intervalmath/tests/test_intervalmath.py (173)
M sympy/plotting/plot.py (164)
M sympy/plotting/tests/test_plot.py (9)

-- Patch Links --

  https://github.com/sympy/sympy/pull/1370.patch
  https://github.com/sympy/sympy/pull/1370.diff

---
Reply to this email directly or view it on GitHub:
https://github.com/sympy/sympy/pull/1370

-- 
You received this message because you are subscribed to the Google Groups 
"sympy-patches" group.
To post to this group, send email to sympy-patches@googlegroups.com.
To unsubscribe from this group, send email to 
sympy-patches+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sympy-patches?hl=en.

Reply via email to