BUG DESCRIPTION:
----------------
A) Renaming: For completion reason, we propose to rename implicitplot() into plotimplicit()
Then, completing after "plot" will include plotimplicit() in the completion list.
while presently "implicitplot" is not listed.
B) Improvements: When fixing the initial version of implicitplot() @ https://codereview.scilab.org/20956,
i wondered about several improvements. Proposed ones follow:
1) When an expression is provided as a string, true equations should be allowed.
For example, for a circle of radius 1 as presented as 1st example, we should be able to enter:
"x^2 + y^2 = 1" as well as "x^2 + y^2 - 1"
Later, this could be extended to plot and fill areas fulfilling an inequality, like "x^2+y^2 > 2".
2) The initial implementation allows to provide a matrix of values instead of
an equation or a function handle. The interest of this syntax is questionable.
contour2d() does the same well and even better, since it can draw several levels in a once.
By the way, this syntax no longer deals with any implicit equation. So i propose to remove it.
3) IMHO, the default y_range values should be the x_range one, instead of the fixed [-1, 1] range.
Assuming that both axes are scaled in the same way looks actually more handy, while
setting [-1, 1] is quite arbitrary.
4) Internal: The provided function is evaluated on the xy-grid with feval(), so in a
scalar way, even when the function is vectorized. This is (sometimes very) slow.
We should try to evaluate values in a vectorized way.
feval() should be used only if the vectorized way fails.
5) It is presently not possible to provide some parameters together with a function
handle needing them. Providing list(fun, a, b, ..) should be allowed.
6) When the expression or function has no root on the given area,
presently implicitplot() yields an error. To me, drawing the empty frame and yielding
a warning should be preferred, without stopping the execution. Because "No root" IS a result.
7) The default x and y labels should be set with
xlabel("$x$", "fontsize",3)
ylabel("$y$", "fontsize",3)
When an expression is provided, the default title should be set to it.