7.67 Bug in geometry[ellipse] in Maple V.4 (9.2.98)

7.67.1 Sergei Zuyev
7.67.2 Ha Quang Le (11.2.98)

7.67.1 Sergei Zuyev

Here is geometry-bug.mws file consisting just of a few lines and visualizing the following bug in geometry[ellipse] procedure: ellipse is computed incorrectly if in its definition one uses floats.

Maple Release 4 Version 4.00f of 2 Dec. 1996

geometry[ellipse] bug report

> restart: 
> with(geometry):
 

Define two ellipses given by the same equation but written in integers and floats:

> _EnvHorizontalName := 'x': _EnvVerticalName := 'y': 
> ellipse(e1,x^2/2+y^2=1  ): 
> ellipse(e2,x^2/2+y^2=1.0):
                                                                                    
                                                                                    
 

Now observe the result (the erroneous one is in red):

> draw({e1(color=green),e2(color=red)},scaling=CONSTRAINED,axes=NORMAL);
 

Let’s verify that it is NOT a bug of draw:

> ?geometry[ellipse]; 
> coordinates(center(e1)); 
 
                                [0, 0] 
 
> coordinates(center(e2)); 
 
                     [-1.000000000, -1.000000000]
 

The help topic on geometry[ellipse] also contains misprints in the command syntax: " ] " is lost:

   ellipse(p, ['directrix'=dir,'focus'=fou, 'eccentricity'=ecc, n ) 
   ellipse(p, ['foci'=foi,'MajorAxis'=lma,n ) 
   ellipse(p, ['foci'=foi,'MinorAxis'=lmi,n ) 
   ellipse(p, ['foci'=foi,'distance'=dis,n ) 
   ellipse(p, ['MajorAxis'=ep1, 'MinorAxis'=ep2,n )
 

should definitely be

   ellipse(p, ['directrix'=dir,'focus'=fou, 'eccentricity'=ecc], n ) 
   ellipse(p, ['foci'=foi,'MajorAxis'=lma],n ) 
   ellipse(p, ['foci'=foi,'MinorAxis'=lmi],n ) 
   ellipse(p, ['foci'=foi,'distance'=dis],n ) 
   ellipse(p, ['MajorAxis'=ep1, 'MinorAxis'=ep2],n )
 

7.67.2 Ha Quang Le (11.2.98)

The bug is fixed in release 5:

> with(geometry): 
 
 
Define two ellipses given by the same equation but written in integers and floats: 
 
\begin{MAPLEinline} 
> _EnvHorizontalName := 'x': _EnvVerticalName := 'y': 
> ellipse(e1,x^2/2+y^2=1  ): 
> ellipse(e2,x^2/2+y^2=1.0): 
> coordinates(center(e1)); 
                                     [0, 0] 
 
> coordinates(center(e2)); 
                                     [0, 0]