#Mathematics on #GNU/ #Linux #Debian: #Axiom http://axiom-developer.org/ 

(1) -> f:=cos(x)*(cos(x/2)*(sqrt(2) +cos(y)) +(sin(x/2)*sin(y)*cos(y)))       

                        x              x                 +-+    x
   (1)  cos(x)cos(y)sin(-)sin(y) + cos(-)cos(x)cos(y) + \|2 cos(-)cos(x)
                        2              2                        2
                                                     Type: Expression Integer
(2) -> g:=sin(x)*(cos(x/2)*(sqrt(2) +cos(y)) + (sin(x/2)*sin(y) *cos(y)))

                  x                     x           +-+    x
   (2)  cos(y)sin(-)sin(x)sin(y) + (cos(-)cos(y) + \|2 cos(-))sin(x)
                  2                     2                  2
                                                     Type: Expression Integer
(3) -> h:= -sin(x/2)*(sqrt(2) +cos(y)) +cos(x/2) *sin(y) *cos(y)

            x                             +-+     x
   (3)  cos(-)cos(y)sin(y) + (- cos(y) - \|2 )sin(-)
            2                                     2
                                                     Type: Expression Integer
(4) -> draw(surface(f,g,h), x=0..4*%pi, y=0..2*%pi, var1Steps==50, var2Steps==50, title=="Botellita de Jerez (Banchoff Klein)")
   Compiling function %B with type (DoubleFloat,DoubleFloat) -> 
      DoubleFloat 
   Compiling function %D with type (DoubleFloat,DoubleFloat) -> 
      DoubleFloat 
   Compiling function %F with type (DoubleFloat,DoubleFloat) -> 
      DoubleFloat 
   Transmitting data...

   (4)  ThreeDimensionalViewport: "Botellita de Jerez (Banchoff Klein)"
                                               Type: ThreeDimensionalViewport
(5) -> )quit