diff --git a/changelog b/changelog
index 943ab4b..923deb7 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,5 @@
+20120205 tpd src/axiom-website/patches.html 20120205.02.tpd.patch
+20120205 tpd src/input/pasta.input fix add new tests
 20120205 tpd src/axiom-website/patches.html 20120205.01.tpd.patch
 20120205 tpd src/input/pasta.input fix add new tests
 20120131 tpd src/axiom-website/patches.html 20120131.01.tpd.patch
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index c5ebba7..5f46be6 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -3790,5 +3790,7 @@ src/input/pasta.input fix add new tests<br/>
 Makefile support for centos<br/>
 <a href="patches/20120205.01.tpd.patch">20120205.01.tpd.patch</a>
 src/input/pasta.input fix add new tests<br/>
+<a href="patches/20120205.02.tpd.patch">20120205.02.tpd.patch</a>
+src/input/pasta.input fix add new tests<br/>
  </body>
 </html>
diff --git a/src/input/pasta.input.pamphlet b/src/input/pasta.input.pamphlet
index 63b54e3..4ff6282 100644
--- a/src/input/pasta.input.pamphlet
+++ b/src/input/pasta.input.pamphlet
@@ -34,22 +34,22 @@ in the Italian-American ``wedding soup'', a broth of vegetables and meat.
 \begin{chunk}{*}
 )clear all
 
---S 1 of 601
+--S 1 of 676
 X(i,j) == 15*cos(i/60*%pi)
 --R                                                                   Type: Void
 --E 1
 
---S 2 of 601
+--S 2 of 676
 Y(i,j) == 15*sin(i/60*%pi)
 --R                                                                   Type: Void
 --E 2
 
---S 3 of 601
+--S 3 of 676
 Z(i,y) == j
 --R                                                                   Type: Void
 --E 3
 
---S 4 of 601
+--S 4 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..120,j=0..30,_
           style=="smooth",title=="Acini Di Pepe")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -70,7 +70,7 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..120,j=0..30,_
 --R                                               Type: ThreeDimensionalViewport
 --E 4
 
---S 5 of 601
+--S 5 of 676
 close(v3d)
 --R                                                                   Type: Void
 --E 5
@@ -87,7 +87,7 @@ pasta wheel. Recommended with melted butter and sage
 \begin{chunk}{*}
 )clear all
 
---S 6 of 601
+--S 6 of 676
 X(i,j) == (10*sin((i/120)*%pi)^(0.5) + _
            (1/400)*sin(((3*j)/10)*%pi)) * _
           cos(((19*j)/2000)*%pi+0.03*%pi)
@@ -95,7 +95,7 @@ X(i,j) == (10*sin((i/120)*%pi)^(0.5) + _
 --R                                                                   Type: Void
 --E 6
 
---S 7 of 601
+--S 7 of 676
 Y(i,j) == (10*sin((i/120)*%pi) + _
            (1/400)*cos(((30*j)/10)*%pi)) * _
           sin(((19*j)/2000)*%pi+0.03*%pi)
@@ -103,14 +103,14 @@ Y(i,j) == (10*sin((i/120)*%pi) + _
 --R                                                                   Type: Void
 --E 7
 
---S 8 of 601
+--S 8 of 676
 Z(i,j) == 5*cos((i/120)*%pi)^5 * sin((j/100)*%pi) - _
           5*sin((j/100)*%pi) * cos((i/120)*%pi)^200
 --R 
 --R                                                                   Type: Void
 --E 8
 
---S 9 of 601
+--S 9 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..60,j=0..100,_
           style=="smooth",title=="Agnolotti")
 --R 
@@ -132,7 +132,7 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..60,j=0..100,_
 --R                                               Type: ThreeDimensionalViewport
 --E 9
 
---S 10 of 601
+--S 10 of 676
 close(v3d)
 --R                                                                   Type: Void
 --E 10
@@ -150,29 +150,29 @@ may also be found served in a {\sl timballo} (baked pasta dish).
 \begin{chunk}{*}
 )clear all
 
---S 11 of 601
+--S 11 of 676
 X(i,j) == cos(0.01*i*%pi)
 --R                                                                   Type: Void
 --E 11
 
---S 12 of 601
+--S 12 of 676
 Y(i,j) == 1.1*sin(0.01*i*%pi)
 --R                                                                   Type: Void
 --E 12
 
---S 13 of 601
+--S 13 of 676
 Z(i,j) == 0.05*j
 --R                                                                   Type: Void
 --E 13
 
---S 14 of 601
+--S 14 of 676
 canvas := createThreeSpace()
 --R
 --R   (4)  3-Space with 0 components
 --R                                                 Type: ThreeSpace DoubleFloat
 --E 14
 
---S 15 of 601
+--S 15 of 676
 makeObject(surface(X(i,j),Y(i,j),Z(i,j)),i=0..200,j=0..8,space==canvas)
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
 --R      Float 
@@ -191,7 +191,7 @@ makeObject(surface(X(i,j),Y(i,j),Z(i,j)),i=0..200,j=0..8,space==canvas)
 --R                                                 Type: ThreeSpace DoubleFloat
 --E 15
 
---S 16 of 601
+--S 16 of 676
 makeObject(surface(X(i,j)/1.4,Y(i,j)/1.4,Z(i,j)),i=0..200,j=0..8,space==canvas)
 --I   Compiling function %Z with type (DoubleFloat,DoubleFloat) -> 
 --R      DoubleFloat 
@@ -204,7 +204,7 @@ makeObject(surface(X(i,j)/1.4,Y(i,j)/1.4,Z(i,j)),i=0..200,j=0..8,space==canvas)
 --R                                                 Type: ThreeSpace DoubleFloat
 --E 16
 
---S 17 of 601
+--S 17 of 676
 vp:=makeViewport3D(canvas,"Anellini")
 --R   Transmitting data...
 --R
@@ -212,7 +212,7 @@ vp:=makeViewport3D(canvas,"Anellini")
 --R                                               Type: ThreeDimensionalViewport
 --E 17
 
---S 18 of 601
+--S 18 of 676
 close(vp)
 --R                                                                   Type: Void
 --E 18
@@ -230,29 +230,29 @@ Amatrice in central Italy.
 \begin{chunk}{*}
 )clear all
 
---S 19 of 601
+--S 19 of 676
 X(i,j) == 0.3*cos(i/30*%pi)
 --R                                                                   Type: Void
 --E 19
 
---S 20 of 601
+--S 20 of 676
 Y(i,j) == 0.3*sin(i/30*%pi)
 --R                                                                   Type: Void
 --E 20
 
---S 21 of 601
+--S 21 of 676
 Z(i,j) == j/45
 --R                                                                   Type: Void
 --E 21
 
---S 22 of 601
+--S 22 of 676
 canvas := createThreeSpace()
 --R
 --R   (4)  3-Space with 0 components
 --R                                                 Type: ThreeSpace DoubleFloat
 --E 22
 
---S 23 of 601
+--S 23 of 676
 makeObject(surface(X(i,j),Y(i,j),Z(i,j)),i=0..60,j=0..90,space==canvas)
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
 --R      Float 
@@ -271,7 +271,7 @@ makeObject(surface(X(i,j),Y(i,j),Z(i,j)),i=0..60,j=0..90,space==canvas)
 --R                                                 Type: ThreeSpace DoubleFloat
 --E 23
 
---S 24 of 601
+--S 24 of 676
 makeObject(surface(X(i,j)/2,Y(i,j)/2,Z(i,j)),i=0..60,j=0..90,space==canvas)
 --I   Compiling function %BP with type (DoubleFloat,DoubleFloat) -> 
 --R      DoubleFloat 
@@ -284,7 +284,7 @@ makeObject(surface(X(i,j)/2,Y(i,j)/2,Z(i,j)),i=0..60,j=0..90,space==canvas)
 --R                                                 Type: ThreeSpace DoubleFloat
 --E 24
 
---S 25 of 601
+--S 25 of 676
 vp:=makeViewport3D(canvas,"Bucatini")
 --R   Transmitting data...
 --R
@@ -292,7 +292,7 @@ vp:=makeViewport3D(canvas,"Bucatini")
 --R                                               Type: ThreeDimensionalViewport
 --E 25
 
---S 26 of 601
+--S 26 of 676
 close(vp)
 --R                                                                   Type: Void
 --E 26
@@ -308,22 +308,22 @@ aubergine, pesto, and ricotta salad.
 \begin{chunk}{*}
 )clear all
 
---S 27 of 601
+--S 27 of 676
 X(i,j) == (0.7 + 0.2*sin(21*j/250 * %pi))*cos(i/20*%pi)
 --R                                                                   Type: Void
 --E 27
 
---S 28 of 601
+--S 28 of 676
 Y(i,j) == (0.7 + 0.2*sin(21*j/250 * %pi))*sin(i/20*%pi)
 --R                                                                   Type: Void
 --E 28
 
---S 29 of 601
+--S 29 of 676
 Z(i,j) == 39.0*i/1000. + 1.5*sin(j/50*%pi)
 --R                                                                   Type: Void
 --E 29
 
---S 30 of 601
+--S 30 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..200,j=0..25,_
           style=="smooth",title=="Buccoli")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -344,7 +344,7 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..200,j=0..25,_
 --R                                               Type: ThreeDimensionalViewport
 --E 30
 
---S 31 of 601
+--S 31 of 676
 close(v3d)
 --R                                                                   Type: Void
 --E 31
@@ -361,22 +361,22 @@ well. Fittingly, they are often served with seafood.
 \begin{chunk}{*}
 )clear all
 
---S 32 of 601
+--S 32 of 676
 X(i,j) == cos(i/75*%pi) + 0.1*cos(j/40*%pi) + 0.1*cos(i/75*%pi + j/40*%pi)
 --R                                                                   Type: Void
 --E 32
 
---S 33 of 601
+--S 33 of 676
 Y(i,j) == 1.2*sin(i/75*%pi) + 0.2*sin(j/40*%pi)
 --R                                                                   Type: Void
 --E 33
 
---S 34 of 601
+--S 34 of 676
 Z(i,j) == j/10
 --R                                                                   Type: Void
 --E 34
 
---S 35 of 601
+--S 35 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..20,_
           style=="smooth",title=="Calamaretti")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -397,7 +397,7 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..20,_
 --R                                               Type: ThreeDimensionalViewport
 --E 35
 
---S 36 of 601
+--S 36 of 676
 close(v3d)
 --R                                                                   Type: Void
 --E 36
@@ -413,26 +413,26 @@ sprinkling of Parmigiano-Reggiano cheese and then oven-baked.
 \begin{chunk}{*}
 )clear all
 
---S 37 of 601
+--S 37 of 676
 X(i,j) == (1+j/100)*cos(i*%pi/55) + 0.5*cos(j*%pi/100) + _
           0.1*cos(i*%pi/55+j*%pi/125)
 --R 
 --R                                                                   Type: Void
 --E 37
 
---S 38 of 601
+--S 38 of 676
 Y(i,j) == 1.3*sin(i*%pi/55) + 0.3*sin(j*%pi/100)
 --R 
 --R                                                                   Type: Void
 --E 38
 
---S 39 of 601
+--S 39 of 676
 Z(i,j) == 7.*j/50.
 --R 
 --R                                                                   Type: Void
 --E 39
 
---S 40 of 601
+--S 40 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..110,j=0..50,_
           style=="smooth",title=="Cannelloni")
 --R 
@@ -454,13 +454,13 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..110,j=0..50,_
 --R                                               Type: ThreeDimensionalViewport
 --E 40
 
---S 41 of 601
+--S 41 of 676
 zoom(v3d,2.0,2.0,2.0)
 --R 
 --R                                                                   Type: Void
 --E 41
 
---S 42 of 601
+--S 42 of 676
 close(v3d)
 --R                                                                   Type: Void
 --E 42
@@ -475,25 +475,25 @@ served with seafood. {\sl Cannolicchi} hail from Campania in southern Italy.
 \begin{chunk}{*}
 )clear all
 
---S 43 of 601
+--S 43 of 676
 X(i,j) == 8*cos(i*%pi/70) + 0.2*cos(2*i*%pi/7) + 5*cos(j*%pi/100)
 --R 
 --R                                                                   Type: Void
 --E 43
 
---S 44 of 601
+--S 44 of 676
 Y(i,j) == 8*sin(i*%pi/70) + 0.2*sin(2*i*%pi/7) + 4*sin(j*%pi/100)
 --R 
 --R                                                                   Type: Void
 --E 44
 
---S 45 of 601
+--S 45 of 676
 Z(i,j) == 6.0*j/5.0
 --R 
 --R                                                                   Type: Void
 --E 45
 
---S 46 of 601
+--S 46 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..140,j=0..50,_
           style=="smooth",title=="Cannolicchi Rigati")
 --R 
@@ -515,13 +515,13 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..140,j=0..50,_
 --R                                               Type: ThreeDimensionalViewport
 --E 46
 
---S 47 of 601
+--S 47 of 676
 zoom(v3d,3.0,3.0,3.0)
 --R 
 --R                                                                   Type: Void
 --E 47
 
---S 48 of 601
+--S 48 of 676
 close(v3d)
 --R                                                                   Type: Void
 --E 48
@@ -539,25 +539,25 @@ torta ricciolina}.
 \begin{chunk}{*}
 )clear all
 
---S 49 of 601
+--S 49 of 676
 X(i,j) == 0.05*cos(2*i*%pi/15) + 0.6*cos(j*%pi/100)
 --R 
 --R                                                                   Type: Void
 --E 49
 
---S 50 of 601
+--S 50 of 676
 Y(i,j) == 0.05*sin(2*i*%pi/15) + 0.5*sin(j*%pi/100)
 --R 
 --R                                                                   Type: Void
 --E 50
 
---S 51 of 601
+--S 51 of 676
 Z(i,j) == 7.0*j/100.0
 --R 
 --R                                                                   Type: Void
 --E 51
 
---S 52 of 601
+--S 52 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..15,j=0..100,_
           style=="smooth",title=="Capellini")
 --R 
@@ -579,13 +579,13 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..15,j=0..100,_
 --R                                               Type: ThreeDimensionalViewport
 --E 52
 
---S 53 of 601
+--S 53 of 676
 zoom(v3d,3.0,3.0,3.0)
 --R 
 --R                                                                   Type: Void
 --E 53
 
---S 54 of 601
+--S 54 of 676
 close(v3d)
 --R                                                                   Type: Void
 --E 54
@@ -602,25 +602,25 @@ cheeses, such as ricotta.
 \begin{chunk}{*}
 )clear all
 
---S 55 of 601
+--S 55 of 676
 X(i,j) == (0.1 + sin(((3*i)/160)*%pi)) * cos(((2.3*j)/120)*%pi)
 --R 
 --R                                                                   Type: Void
 --E 55
 
---S 56 of 601
+--S 56 of 676
 Y(i,j) == (0.1 + sin(((3*i)/160)*%pi)) * sin(((2.3*j)/120)*%pi)
 --R 
 --R                                                                   Type: Void
 --E 56
 
---S 57 of 601
+--S 57 of 676
 Z(i,j) == 0.1 + (1/400.)*j + (0.3 - 0.231*(i/40.)) * cos((i/20.)*%pi)
 --R 
 --R                                                                   Type: Void
 --E 57
 
---S 58 of 601
+--S 58 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..40,j=0..120,_
           style=="smooth",title=="Cappelletti")
 --R 
@@ -642,13 +642,726 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..40,j=0..120,_
 --R                                               Type: ThreeDimensionalViewport
 --E 58
 
---S 59 of 601
+--S 59 of 676
 close(v3d)
 --R                                                                   Type: Void
 --E 59
 
 \end{chunk}
 
+\section{Casarecce}
+Easily identified by their unique s-shaped cross-section {\sl
+casarecce} (home-made) are best cooked as {\sl postasciutta} (pasta
+boiled, drained and dished up with a sauce). Often {\sl casarecce} are
+served with a classic {\sl ragu} and topped with a sprinkle of pepper
+and Parmigiano-Reggiano cheese.
+\begin{chunk}{*}
+)clear all
+
+--S 60 of 676
+X(i,j) == _ 
+  if (i <= 30)_
+   then 0.5*cos(j*%pi/30)+0.5*cos((2*i+j+16)/40*%pi) _
+   else cos(j*%pi/40)+0.5*cos(j*%pi/30)+0.5*sin((2*i-j)/40*%pi)
+--R                                                                   Type: Void
+--E 60
+
+--S 61 of 676
+Y(i,j) == _
+  if (i <= 30)_
+   then 0.5*sin(j*%pi/30)+0.5*sin((2*i+j+16)/40*%pi) _
+   else sin(j*%pi/40)+0.5*sin(j*%pi/30)+0.5*cos((2*i-j)/40*%pi)
+--R                                                                   Type: Void
+--E 61
+
+--S 62 of 676
+Z(i,j) == j/4.0
+--R                                                                   Type: Void
+--E 62
+
+--S 63 of 676
+v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..60,j=0..60,_
+          style=="smooth",title=="Casarecce")
+--R   Compiling function X with type (Variable i,Variable j) -> Expression
+--R      Float 
+--R   Compiling function Y with type (Variable i,Variable j) -> Expression
+--R      Float 
+--R   Compiling function Z with type (Variable i,Variable j) -> Polynomial
+--R      Float 
+--I   Compiling function %WY with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--I   Compiling function %XA with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--I   Compiling function %XC with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--R
+--R   Transmitting data...
+--R
+--R   (4)  ThreeDimensionalViewport: "Casarecce"
+--R                                               Type: ThreeDimensionalViewport
+--E 63
+
+--S 64 of 676
+zoom(v3d,3.0,3.0,3.0)
+--R                                                                   Type: Void
+--E 64
+
+--S 65 of 676
+close(v3d)
+--R                                                                   Type: Void
+--E 65
+
+\end{chunk}
+
+\section{Castellane}
+The manufacturer Bailla has recently created this elegant pasta
+shape. Accordking to its maker, they were originally called {\sl
+paguri} (hermit crabs) but renamed {\sl castellane} (castle
+dwellers). The sturdy form and rich nutty taste of {\sl castellane}
+stand up to hearty meals and full-flavoured sauces.
+\begin{chunk}{*}
+)clear all 
+
+--S 66 of 676
+X(i,j) == ((0.3*sin(j*%pi/120)*abs(cos((j+3)*%pi/6)) + _
+           i^2/720.*(sin(2*j*%pi/300)^2+0.1) + 0.3)) * cos(7*i*%pi/150)
+--R                                                                   Type: Void
+--E 66
+
+--S 67 of 676
+Y(i,j) == ((0.3*sin(j*%pi/120)*abs(cos((j+3)*%pi/6)) + _
+           i^2/720.*(sin(2*j*%pi/300)^2+0.1) + 0.3)) * sin(7*i*%pi/150)
+--R                                                                   Type: Void
+--E 67
+
+--S 68 of 676
+Z(i,j) == 12*cos(j*%pi/120)
+--R                                                                   Type: Void
+--E 68
+
+--S 69 of 676
+v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..60,j=0..120,_
+          style=="smooth",title=="Castellane")
+--R   Compiling function X with type (Variable i,Variable j) -> Expression
+--R      Float 
+--R   Compiling function Y with type (Variable i,Variable j) -> Expression
+--R      Float 
+--R   Compiling function Z with type (Variable i,Variable j) -> Expression
+--R      Integer 
+--I   Compiling function %XJ with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--I   Compiling function %XK with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--I   Compiling function %XM with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--R   Transmitting data...
+--R
+--R   (4)  ThreeDimensionalViewport: "Castellane"
+--R                                               Type: ThreeDimensionalViewport
+--E 69
+
+--S 70 of 676
+viewpoint(v3d,0.0,0.0,45.0)
+--R                                                                   Type: Void
+--E 70
+
+--S 71 of 676
+rotate(v3d,270,30)
+--R                                                                   Type: Void
+--E 71
+
+--S 72 of 676
+zoom(v3d,1.5,1.5,1.5)
+--R                                                                   Type: Void
+--E 72
+
+--S 73 of 676
+close(v3d)
+--R                                                                   Type: Void
+--E 73
+
+\end{chunk}
+
+\section{Cavatappi}
+Perfect with chunky sauces made from lamb or pork, {\sl cavatappi}
+(corkscrews) are 36 mm-long, hollow helicoidal tubes. As well as an
+accompaniment to creamy sauces, such as {\sl boscaiola} (woodsman's)
+sauce, they are also often used in oven-baked cheese-topped dishes, or
+in salads with pesto.
+\begin{chunk}{*}
+)clear all
+
+--S 74 of 676
+X(i,j) == (3+2*cos(i*%pi/35)+0.1*cos(2*i*%pi/7))*cos(j*%pi/30)
+--R                                                                   Type: Void
+--E 74
+
+--S 75 of 676
+Y(i,j) == (3+2*cos(i*%pi/35)+0.1*cos(2*i*%pi/7))*sin(j*%pi/30)
+--R                                                                   Type: Void
+--E 75
+
+--S 76 of 676
+Z(i,j) == 3+2*sin(i*%pi/35)+0.1*sin(2*i*%pi/7)+j/6.0
+--R                                                                   Type: Void
+--E 76
+
+--S 77 of 676
+v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..70,j=0..150,_
+          style=="smooth",title=="Cavatappi")
+--R   Compiling function X with type (Variable i,Variable j) -> Expression
+--R      Float 
+--R   Compiling function Y with type (Variable i,Variable j) -> Expression
+--R      Float 
+--R   Compiling function Z with type (Variable i,Variable j) -> Expression
+--R      Float 
+--I   Compiling function %XO with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--I   Compiling function %XQ with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--I   Compiling function %XS with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--R   Transmitting data...
+--R
+--R   (4)  ThreeDimensionalViewport: "Cavatappi"
+--R                                               Type: ThreeDimensionalViewport
+--E 77
+
+--S 78 of 676
+zoom(v3d,2.0,2.0,2.0)
+--R                                                                   Type: Void
+--E 78
+
+--S 79 of 676
+close(v3d) 
+--R                                                                   Type: Void
+--E 79
+ 
+\end{chunk}
+
+\section{Cavatelli}
+Popular in the south of Italy, and related in shape to the longer
+twisted {\sl casareccia}, {\sl cavatelli} can be served {\sl alla
+puttanesca} (with a sauce containing chilli, garlic, capers, and
+anchovies). They can also be added to a salad with olive oil, sauteed
+crushed garlic and a dusting of soft cheese.
+\begin{chunk}{*}
+)clear all
+
+--S 80 of 676
+A(i) == 0.5*cos(i*%pi/100)
+--R                                                                   Type: Void
+--E 80
+
+--S 81 of 676
+B(i,j) == j/60.*sin(i*%pi/100)
+--R                                                                   Type: Void
+--E 81
+
+--S 82 of 676
+X(i,j) == 3*(1-sin(A(i)*2*%pi))*cos(A(i)*%pi+0.9*%pi)
+--R                                                                   Type: Void
+--E 82
+
+--S 83 of 676
+Y(i,j) == 3*sin(A(i)*2*%pi)*sin(A(i)*%pi+0.63*%pi)
+--R                                                                   Type: Void
+--E 83
+
+--S 84 of 676
+Z(i,j) == 4*B(i,j)*(5-sin(A(i)*%pi))
+--R                                                                   Type: Void
+--E 84
+
+--S 85 of 676
+v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..200,j=0..30,_
+          style=="smooth",title=="Cavatelli")
+--R   Compiling function A with type Variable i -> Expression Float 
+--R   Compiling function X with type (Variable i,Variable j) -> Expression
+--R      Float 
+--R   Compiling function Y with type (Variable i,Variable j) -> Expression
+--R      Float 
+--R   Compiling function B with type (Variable i,Variable j) -> Expression
+--R      Float 
+--R   Compiling function Z with type (Variable i,Variable j) -> Expression
+--R      Float 
+--I   Compiling function %XU with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--I   Compiling function %XW with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--I   Compiling function %XY with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--R   Transmitting data...
+--R
+--R   (6)  ThreeDimensionalViewport: "Cavatelli"
+--R                                               Type: ThreeDimensionalViewport
+--E 85
+
+--S 86 of 676
+close(v3d)
+--R                                                                   Type: Void
+--E 86
+
+\end{chunk}
+
+\section{Chifferi Rigati}
+This pasta - available in both {\sl rigoti} (grooved) and {\sl lisci}
+(smooth) forms - is typically cooked in broth or served in {\sl rogu
+alla bolognese}, though {\sl chifferi rigati} also make an excellent
+addition to salads with carrot, red pepper and courgette. {\sl
+Chifferi rigoti} bear a resemblance to, and the term is a
+transliteration of, the Austrian 'kipfel' sweet.
+\begin{chunk}{*}
+)clear all 
+
+--S 87 of 676
+X(i,j) == (0.45+0.3*cos(i*%pi/100)+0.005*cos(2*i*%pi/5)) * cos(j*%pi/45) + _
+          0.15*(j/45.0)^10*cos(i*%pi/100)^3
+--R                                                                   Type: Void
+--E 87
+
+--S 88 of 676
+Y(i,j) == (0.35+j/300.0)*sin(i*%pi/100) + 0.005*sin(2*i*%pi/5)
+--R                                                                   Type: Void
+--E 88
+
+--S 89 of 676
+Z(i,j) == (0.4+0.3*cos(i*%pi/100))*sin(j*%pi/45)
+--R                                                                   Type: Void
+--E 89
+
+--S 90 of 676
+v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..200,j=0..45,_
+          style=="smooth",title=="Chifferi Rigati")
+--R   Compiling function X with type (Variable i,Variable j) -> Expression
+--R      Float 
+--R   Compiling function Y with type (Variable i,Variable j) -> Expression
+--R      Float 
+--R   Compiling function Z with type (Variable i,Variable j) -> Expression
+--R      Float 
+--I   Compiling function %YG with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--I   Compiling function %YI with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--I   Compiling function %YK with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--R   Transmitting data...
+--R
+--R   (4)  ThreeDimensionalViewport: "Chifferi Rigati"
+--R                                               Type: ThreeDimensionalViewport
+--E 90
+
+--S 91 of 676
+rotate(v3d,90,180)
+--R                                                                   Type: Void
+--E 91
+
+--S 92 of 676
+close(v3d)
+--R                                                                   Type: Void
+--E 92
+\end{chunk}
+
+\section{Colonne Pompeii}
+This ornate pasta (originally from Campania, southern Italy) is
+similar in shape to {\sl fusilloni} (a large {\sl fusilli}) but is
+substantially longer. {\sl Colonne Pompeii} (columns of Pompeii) are
+best served with a seasoning of fresh basil, pine nuts, finely sliced
+garlic and olive oil, topped with a sprinkling of freshly grated
+Parmigiano-Reggiano.
+\begin{chunk}{*}
+)clear all 
+
+--S 93 of 676
+X0(i,j) == _
+  if (j <= 50) _
+   then 2*cos(i*%pi/20) _
+   else 2*cos(i*%pi/20)*cos(-j*%pi/25)
+--R                                                                   Type: Void
+--E 93
+
+--S 94 of 676
+Y0(i,j) == _
+  if (j <= 50) _
+   then 0.0 _
+   else 2*cos(i*%pi/20)*sin(-j*%pi/25) + 3*sin((j-50)*%pi/200)
+--R                                                                   Type: Void
+--E 94
+
+--S 95 of 676
+Z0(i,j) == _
+  if (j <= 50) _
+   then sin(i*%pi/20)+12 _
+   else sin(i*%pi/20)+6.0*j/25.0
+--R                                                                   Type: Void
+--E 95
+
+--S 96 of 676
+X1(i,j) == _
+  if (j <= 200) _
+   then 2*cos(i*%pi/20)*cos(-j*%pi/25+2*%pi/3) _
+   else 2*cos(i*%pi/20)*sin(-28*%pi/3)
+--R                                                                   Type: Void
+--E 96
+
+--S 97 of 676
+Y1(i,j) == _
+  if (j <= 200) _
+   then 2*cos(i*%pi/20)*sin(-j*%pi/20 + 2*%pi/3) + 3*sin(j*%pi/200) _
+   else 2*cos(i*%pi/20)*sin(-28*%pi/3)
+--R                                                                   Type: Void
+--E 97
+
+--S 98 of 676
+Z1(i,j) == _
+  if (j <= 200) _
+   then 12+sin(i*%pi/20)+6.0*j/25.0 _
+   else sin(i*%pi/20)+60
+--R                                                                   Type: Void
+--E 98
+
+--S 99 of 676
+X2(i,j) == _
+  if (j <= 200) _
+   then 2*cos(i*%pi/20)*cos(-j*%pi/25+4*%pi/3) _
+   else 2*cos(i*%pi/20)*sin(-28*%pi/3)
+--R                                                                   Type: Void
+--E 99
+
+--S 100 of 676
+Y2(i,j) == _
+  if (j <= 200) _
+   then 2*cos(i*%pi/200)*sin(-j*%pi/25+4*%pi/3)+3*sin(j*%pi/200) _
+   else 2*cos(i*%pi/20)*sin(-28*%pi/3)
+--R                                                                   Type: Void
+--E 100
+
+--S 101 of 676
+vsp:=createThreeSpace()
+--R
+--R   (9)  3-Space with 0 components
+--R                                                 Type: ThreeSpace DoubleFloat
+--E 101
+
+--S 102 of 676
+makeObject(surface(X0(i,j),Y0(i,j),Z0(i,j)),i=0..10,j=0..250,space==vsp)
+--R   Compiling function X0 with type (Variable i,Variable j) -> 
+--R      Expression Integer 
+--R   Compiling function Y0 with type (Variable i,Variable j) -> 
+--R      Expression Float 
+--R   Compiling function Z0 with type (Variable i,Variable j) -> 
+--R      Expression Float 
+--I   Compiling function %ZK with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--I   Compiling function %ZM with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--I   Compiling function %ZO with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--R
+--R   (10)  3-Space with 1 component
+--R                                                 Type: ThreeSpace DoubleFloat
+--E 102
+
+--S 103 of 676
+makeObject(surface(X1(i,j),Y1(i,j),Z1(i,j)),i=0..10,j=0..250,space==vsp)
+--R   Compiling function X1 with type (Variable i,Variable j) -> 
+--R      Expression Integer 
+--R   Compiling function Y1 with type (Variable i,Variable j) -> 
+--R      Expression Integer 
+--R   Compiling function Z1 with type (Variable i,Variable j) -> 
+--R      Expression Float 
+--I   Compiling function %ZQ with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--I   Compiling function %ZS with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--I   Compiling function %ZU with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--R
+--R   (11)  3-Space with 2 components
+--R                                                 Type: ThreeSpace DoubleFloat
+--E 103
+
+--S 104 of 676
+makeObject(surface(X2(i,j),Y2(i,j),Z1(i,j)),i=0..10,j=0..250,space==vsp)
+--R   Compiling function X2 with type (Variable i,Variable j) -> 
+--R      Expression Integer 
+--R   Compiling function Y2 with type (Variable i,Variable j) -> 
+--R      Expression Integer 
+--I   Compiling function %ZW with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--I   Compiling function %ZY with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--I   Compiling function %BAA with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--R
+--R   (12)  3-Space with 3 components
+--R                                                 Type: ThreeSpace DoubleFloat
+--E 104
+
+--S 105 of 676
+vp:=makeViewport3D(vsp,"Colonne Pompeii")
+--R   Transmitting data...
+--R
+--R   (13)  ThreeDimensionalViewport: "Colonne Pompeii"
+--R                                               Type: ThreeDimensionalViewport
+--E 105
+
+--S 106 of 676
+zoom(vp,3.0,3.0,3.0)
+--R                                                                   Type: Void
+--E 106
+
+--S 107 of 676
+close(vp)
+--R                                                                   Type: Void
+--E 107
+
+\end{chunk}
+
+\section{Conchiglie Rigate}
+Shaped like their namesake, {\sl conchiglie} (shells) exist in both
+{\sl rigate} (grooved) and {\sl lisce} (smooth) forms. Suited to light
+tomato sauces, ricotta cheese or {\sl pesto genovese}, {\sl
+conchiglie} hold flavourings in their grooves and cunningly designed
+shell. Smaller versions are used in soups, while larger shells are
+more commonly served with a sauce.
+\begin{chunk}{*}
+)clear all 
+
+--S 108 of 676
+A(i,j) == 0.25*sin(j*%pi/250)*cos((6*j+25)/25*%pi)
+--R                                                                   Type: Void
+--E 108
+
+--S 109 of 676
+B(i,j) == ((40.0-i)/40.0)*(0.3+sin(j*%pi/250))*%pi
+--R                                                                   Type: Void
+--E 109
+
+--S 110 of 676
+C(i,j) == 2.5*cos(j*%pi/125)+2*sin((40-i)*%pi/80)^10 * _
+          sin(j*%pi/250)^10*sin(j*%pi/125+1.5*%pi)
+--R                                                                   Type: Void
+--E 110
+
+--S 111 of 676
+X(i,j) == A(i,j)+cos(j*%pi/125)+(5+30*sin(j*%pi/250))*sin(B(i,j)) * _
+          sin(i/40*(0.1*(1.1+sin(j*%pi/250)^5))*%pi)
+--R                                                                   Type: Void
+--E 111
+
+--S 112 of 676
+Y(i,j) == A(i,j)+(5+30*sin(j*%pi/250))*cos(B(i,j)) * _
+          sin(i/40*(0.1*(1.1+sin(j*%pi/250)^5))*%pi) + C(i,j)
+--R                                                                   Type: Void
+--E 112
+
+--S 113 of 676
+Z(i,j) == 25.0*cos(j*%pi/250)
+--R                                                                   Type: Void
+--E 113
+
+--S 114 of 676
+v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..40,j=0..250,_
+          style=="smooth",title=="Conchiglie Rigate")
+--R   Compiling function A with type (Variable i,Variable j) -> Expression
+--R      Float 
+--R   Compiling function B with type (Variable i,Variable j) -> Expression
+--R      Float 
+--R   Compiling function X with type (Variable i,Variable j) -> Expression
+--R      Float 
+--R   Compiling function C with type (Variable i,Variable j) -> Expression
+--R      Float 
+--R   Compiling function Y with type (Variable i,Variable j) -> Expression
+--R      Float 
+--R   Compiling function Z with type (Variable i,Variable j) -> Expression
+--R      Float 
+--I   Compiling function %BAC with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--I   Compiling function %BAE with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--I   Compiling function %BAG with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--R   Transmitting data...
+--R
+--R   (7)  ThreeDimensionalViewport: "Conchiglie Rigate"
+--R                                               Type: ThreeDimensionalViewport
+--E 114
+
+--S 115 of 676
+rotate(v3d,45,45)
+--R                                                                   Type: Void
+--E 115
+
+--S 116 of 676
+close(v3d)
+--R                                                                   Type: Void
+--E 116
+
+\end{chunk}
+
+\section{Conchigliette Lisce}
+Typically found in central and southern Italy (notably Campania), {\sl
+conchigliette lisce} (small smooth shells) can be served in soups such
+as {\sl minestrone}. Alternatively, these shells can accompany a meat-
+or vegetable-based sauce.
+\begin{chunk}{*}
+)clear all
+
+--S 117 of 676
+A(i,j) == (60.0-i)/60.0*(0.5+sin(j*%pi/60))*%pi
+--R                                                                   Type: Void
+--E 117
+
+--S 118 of 676
+B(i,j) == i/60.0*(0.1*(1.1+sin(j*%pi/60)^5))*%pi
+--R                                                                   Type: Void
+--E 118
+
+--S 119 of 676
+C(i,j) == 2.5*cos(j*%pi/30)+2*sin((60-i)*%pi/120)^10 * _
+          sin(j*%pi/60)^10*sin((j+45)*%pi/30)
+--R                                                                   Type: Void
+--E 119
+
+--S 120 of 676
+X(i,j) == (5+30*sin(j*%pi/60))*sin(A(i,j))*sin(B(i,j))+cos(j*%pi/30)
+--R                                                                   Type: Void
+--E 120
+
+--S 121 of 676
+Y(i,j) == (5+30*sin(j*%pi/60))*cos(A(i,j))*sin(B(i,j))+C(i,j)
+--R                                                                   Type: Void
+--E 121
+
+--S 122 of 676
+Z(i,j) == 25*cos(j*%pi/60)
+--R                                                                   Type: Void
+--E 122
+
+--S 123 of 676
+v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..60,j=0..60,_
+          style=="smooth",title=="Conchigliette Lisce")
+--R   Compiling function A with type (Variable i,Variable j) -> Expression
+--R      Float 
+--R   Compiling function B with type (Variable i,Variable j) -> Expression
+--R      Float 
+--R   Compiling function X with type (Variable i,Variable j) -> Expression
+--R      Float 
+--R   Compiling function C with type (Variable i,Variable j) -> Expression
+--R      Float 
+--R   Compiling function Y with type (Variable i,Variable j) -> Expression
+--R      Float 
+--R   Compiling function Z with type (Variable i,Variable j) -> Expression
+--R      Integer 
+--I   Compiling function %F with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--I   Compiling function %H with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--I   Compiling function %J with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--R   Transmitting data...
+--R
+--R   (7)  ThreeDimensionalViewport: "Conchigliette Lisce"
+--R                                               Type: ThreeDimensionalViewport
+--E 123
+
+--S 124 of 676
+rotate(v3d,45,45)
+--R                                                                   Type: Void
+--E 124
+
+--S 125 of 676
+close(v3d) 
+--R                                                                   Type: Void
+--E 125
+
+\end{chunk}
+
+\section{Conchiglioni Rigate}
+The shape of {\sl conchiglioni rigate} (large ribbed shells) is ideal
+for holding sauces and fillings (either fish or meat based) and the
+pasta can be baked in the oven, or placed under a grill and cooked as
+a gratin. {\sl Conchiglioni rigati} are often served in the
+Italian-American dish {\sl pasta primavera} (pasta in spring sauce)
+alongside crisp spring vegetables.
+\begin{chunk}{*}
+)clear all 
+
+--S 126 of 676
+A(i,j) == 0.25*sin(j*%pi/200)*cos((j+4)*%pi/4)
+--R                                                                   Type: Void
+--E 126
+
+--S 127 of 676
+B(i,j) == i/40.0*(0.1+0.1*sin(j*%pi/200)^6)*%pi
+--R                                                                   Type: Void
+--E 127
+
+--S 128 of 676
+C(i,j) == 2.5*cos(j*%pi/100)+3*sin((40-i)*%pi/80)^10 * _
+          sin(j*%pi/200)^10*sin((j-150)*%pi/100)
+--R                                                                   Type: Void
+--E 128
+
+--S 129 of 676
+X(i,j) == A(i,j)+(10+30*sin(j*%pi/200)) * _
+          sin((40.0-i)/40*(0.3+sin(j*%pi/200)^3)*%pi) * _
+          sin(B(i,j))+cos(j*%pi/100)
+--R                                                                   Type: Void
+--E 129
+
+--S 130 of 676
+Y(i,j) == A(i,j)+(10+30*sin(j*%pi/200)) * _
+          cos((40.0-i)/40*(0.3+sin(j*%pi/200)^3)*%pi) * _
+          sin(B(i,j))+C(i,j)
+--R                                                                   Type: Void
+--E 130
+
+--S 131 of 676
+Z(i,j) == 30.0*cos(j*%pi/200)
+--R                                                                   Type: Void
+--E 131
+
+--S 132 of 676
+v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..40,j=0..200,_
+          style=="smooth",title=="Conchiglioni Rigati")
+--R   Compiling function A with type (Variable i,Variable j) -> Expression
+--R      Float 
+--R   Compiling function B with type (Variable i,Variable j) -> Expression
+--R      Float 
+--R   Compiling function X with type (Variable i,Variable j) -> Expression
+--R      Float 
+--R   Compiling function C with type (Variable i,Variable j) -> Expression
+--R      Float 
+--R   Compiling function Y with type (Variable i,Variable j) -> Expression
+--R      Float 
+--R   Compiling function Z with type (Variable i,Variable j) -> Expression
+--R      Float 
+--I   Compiling function %YG with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--I   Compiling function %YI with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--I   Compiling function %YK with type (DoubleFloat,DoubleFloat) -> 
+--R      DoubleFloat 
+--R   Transmitting data...
+--R
+--R   (7)  ThreeDimensionalViewport: "Conchiglioni Rigati"
+--R                                               Type: ThreeDimensionalViewport
+--E 132
+
+--S 133 of 676
+rotate(v3d,45,45)
+--R                                                                   Type: Void
+--E 133
+
+--S 134 of 676
+close(v3d)
+--R                                                                   Type: Void
+--E 134
+
+\end{chunk}
+
 \section{Corallini Lisci}
 Members of the {\sl postine minute} (tiny pasta) group, {\sl corallini
 lisci} (small smooth coral) are so called because their pierced
@@ -658,29 +1371,29 @@ corallini} are best cooked in broths, such as Tuscan white bean soup.
 \begin{chunk}{*}
 )clear all
 
---S 60 of 601
+--S 135 of 676
 X(i,j) == 0.8*cos(i*%pi/50)
 --R                                                                   Type: Void
---E 60
+--E 135
 
---S 61 of 601
+--S 136 of 676
 Y(i,j) == 0.8*sin(i*%pi/50)
 --R                                                                   Type: Void
---E 61
+--E 136
 
---S 62 of 601
+--S 137 of 676
 Z(i,j) == 3.0*j/50.0
 --R                                                                   Type: Void
---E 62
+--E 137
 
---S 63 of 601
+--S 138 of 676
 vsp:=createThreeSpace()
 --R
 --R   (4)  3-Space with 0 components
 --R                                                 Type: ThreeSpace DoubleFloat
---E 63
+--E 138
 
---S 64 of 601
+--S 139 of 676
 makeObject(surface(X(i,j),Y(i,j),Z(i,j)),i=0..140,j=0..70,space==vsp)
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
 --R      Float 
@@ -697,9 +1410,9 @@ makeObject(surface(X(i,j),Y(i,j),Z(i,j)),i=0..140,j=0..70,space==vsp)
 --R
 --R   (5)  3-Space with 1 component
 --R                                                 Type: ThreeSpace DoubleFloat
---E 64
+--E 139
 
---S 65 of 601
+--S 140 of 676
 makeObject(surface(X(i,j)/2,Y(i,j)/2,Z(i,j)),i=0..140,j=0..70,space==vsp)
 --I   Compiling function %L with type (DoubleFloat,DoubleFloat) -> 
 --R      DoubleFloat 
@@ -710,25 +1423,25 @@ makeObject(surface(X(i,j)/2,Y(i,j)/2,Z(i,j)),i=0..140,j=0..70,space==vsp)
 --R
 --R   (6)  3-Space with 2 components
 --R                                                 Type: ThreeSpace DoubleFloat
---E 65
+--E 140
 
---S 66 of 601
+--S 141 of 676
 vp:=makeViewport3D(vsp,style=="smooth",title=="Corallini Lisci")
 --R   Transmitting data...
 --R
 --R   (7)  ThreeDimensionalViewport: "Corallini Lisci"
 --R                                               Type: ThreeDimensionalViewport
---E 66
+--E 141
 
---S 67 of 601
+--S 142 of 676
 zoom(vp,2.0,2.0,2.0)
 --R                                                                   Type: Void
---E 67
+--E 142
 
---S 68 of 601
+--S 143 of 676
 close(vp)
 --R                                                                   Type: Void
---E 68
+--E 143
 
 \end{chunk}
 
@@ -741,38 +1454,38 @@ contains tomato, garlic, and basil.
 \begin{chunk}{*}
 )clear all
 
---S 69 of 601
+--S 144 of 676
 A(i)   == ((1+sin((1.5+i)*%pi))/2)^5
 --R                                                                   Type: Void
---E 69
+--E 144
 
---S 70 of 601
+--S 145 of 676
 B(i,j) == 0.3*sin(A(i/140.)*%pi+0.5*%pi)^1000*cos(j*%pi/70.0)
 --R                                                                   Type: Void
---E 70
+--E 145
 
---S 71 of 601
+--S 146 of 676
 C(i,j) == 0.3*cos(A(i/140.)*%pi)^1000*sin(j*%pi/70.0)
 --R                                                                   Type: Void
---E 71
+--E 146
 
---S 72 of 601
+--S 147 of 676
 X(i,j) == (0.5+0.3*cos(A(i/140.)*2*%pi))*cos(j*%pi/70.0) + _
           0.15*(j/70.0)^10*cos(A(i/140.0)*2*%pi)^3 + B(i,j)
 --R                                                                   Type: Void
---E 72
+--E 147
 
---S 73 of 601
+--S 148 of 676
 Y(i,j) == 0.35*sin(A(i/140.0)*2*%pi) + 0.15*j/70.0*sin(A(i/140.0)*2*%pi)
 --R                                                                   Type: Void
---E 73
+--E 148
 
---S 74 of 601
+--S 149 of 676
 Z(i,j) == (0.4+0.3*cos(A(i/140.0)*2*%pi))*sin(j*%pi/70.0) + C(i,j)
 --R                                                                   Type: Void
---E 74
+--E 149
 
---S 75 of 601
+--S 150 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..140,j=0..70,_
           style=="smooth",title=="Creste Di Galli")
 --R   Compiling function A with type Polynomial Float -> Expression Float 
@@ -796,12 +1509,12 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..140,j=0..70,_
 --R
 --R   (7)  ThreeDimensionalViewport: "Creste Di Galli"
 --R                                               Type: ThreeDimensionalViewport
---E 75
+--E 150
 
---S 76 of 601
+--S 151 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 76
+--E 151
 
 \end{chunk}
 
@@ -813,23 +1526,23 @@ all {\sl postine} they may be served in soup, such as cream of chicken.
 \begin{chunk}{*}
 )clear all
 
---S 77 of 601
+--S 152 of 676
 X(i,j) == 2*cos(i*%pi/150)-cos(i*%pi/75)-sin(i*%pi/300)^150 - _
           (abs(cos(i*%pi/300)))^5
 --R                                                                   Type: Void
---E 77
+--E 152
 
---S 78 of 601
+--S 153 of 676
 Y(i,j) == 2*sin(i*%pi/150)-sin(i*%pi/75)
 --R                                                                   Type: Void
---E 78
+--E 153
 
---S 79 of 601
+--S 154 of 676
 Z(i,j) == j/10.0
 --R                                                                   Type: Void
---E 79
+--E 154
 
---S 80 of 601
+--S 155 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..300,j=0..10,_
           style=="smooth",title=="Couretti")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -848,12 +1561,12 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..300,j=0..10,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Couretti"
 --R                                               Type: ThreeDimensionalViewport
---E 80
+--E 155
 
---S 81 of 601
+--S 156 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 81
+--E 156
 
 \end{chunk}
 
@@ -866,22 +1579,22 @@ sustaining winter snack, as well as an excellent addition to salads.
 \begin{chunk}{*}
 )clear all
 
---S 82 of 601
+--S 157 of 676
 X(i,j) ==       cos(i*%pi/100) + 0.03*cos((7*i)*%pi/40) + 0.25*cos(j*%pi/50)
 --R                                                                   Type: Void
---E 82
+--E 157
 
---S 83 of 601
+--S 158 of 676
 Y(i,j) == 1.1 * sin(i*%pi/100) + 0.03*sin((7*i)*%pi/40) + 0.25*sin(j*%pi/50)
 --R                                                                   Type: Void
---E 83
+--E 158
 
---S 84 of 601
+--S 159 of 676
 Z(i,j) == j/10.0
 --R                                                                   Type: Void
---E 84
+--E 159
 
---S 85 of 601
+--S 160 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..200,j=0..25,_
           style=="smooth",title=="Ditali Rigati")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -900,12 +1613,12 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..200,j=0..25,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Ditali Rigati"
 --R                                               Type: ThreeDimensionalViewport
---E 85
+--E 160
 
---S 86 of 601
+--S 161 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 86
+--E 161
 
 \end{chunk}
 
@@ -918,51 +1631,51 @@ These packed dumplings are similar to ravioli, only larger.
 \begin{chunk}{*}
 )clear all
 
---S 87 of 601
+--S 162 of 676
 A(i,j) == (0.8 + sin(i/100*%pi)^8 - 0.8 * cos(i/25*%pi))^1.5 + _
            0.2 + 0.2 * sin(1/100*%pi)
 --R 
 --R                                                                   Type: Void
---E 87
+--E 162
 
---S 88 of 601
+--S 163 of 676
 B(i,j) == (0.9 + cos(i/100*%pi)^8 - 0.9 * cos(i/25*%pi + 0.03*%pi))^1.5 + _
            0.3 * cos(i/100*%pi)
 --R 
 --R                                                                   Type: Void
---E 88
+--E 163
 
---S 89 of 601
+--S 164 of 676
 C(i,j) == 4 - ((4*j)/500)*(1+cos(i/100*%pi)^8 - 0.8*cos(i/25*%pi))^1.5
 --R 
 --R                                                                   Type: Void
---E 89
+--E 164
 
---S 90 of 601
+--S 165 of 676
 X(i,j) == cos(i/100*%pi) * _
           (A(i,j) * sin(j/100*%pi)^8 + _
            0.6 * (2 + sin(i/100*%pi)^2) * sin(j/50*%pi)^2)
 --R 
 --R                                                                   Type: Void
---E 90
+--E 165
 
---S 91 of 601
+--S 166 of 676
 Y(i,j) == sin(i/100*%pi) * _
           (B(i,j) * sin(j/100*%pi)^8 + _
            0.6 * (2 + cos(i/100*%pi)^2) * sin(j/50*%pi)^2)
 --R 
 --R                                                                   Type: Void
---E 91
+--E 166
 
---S 92 of 601
+--S 167 of 676
 Z(i,j) == (1 + sin(j/100*%pi - 0.5*%pi)) * _
            (C(i,j) * ((4*j)/500) * _
             (1 + sin(i/100*%pi)^8 - 0.8 * cos(i/25*%pi))^1.5)
 --R 
 --R                                                                   Type: Void
---E 92
+--E 167
 
---S 93 of 601
+--S 168 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..200,j=0..50,_
           style=="smooth",title=="Fagottini")
 --R 
@@ -988,12 +1701,12 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..200,j=0..50,_
 --R
 --R   (7)  ThreeDimensionalViewport: "Fagottini"
 --R                                               Type: ThreeDimensionalViewport
---E 93
+--E 168
 
---S 94 of 601
+--S 169 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 94
+--E 169
 
 \end{chunk}
 
@@ -1006,40 +1719,40 @@ might be accompanied by green peas and chicken or ham.
 \begin{chunk}{*}
 )clear all
 
---S 95 of 601
+--S 170 of 676
 A(i)   == sin((7*i+16)*%pi/40)
 --R                                                                   Type: Void
---E 95
+--E 170
 
---S 96 of 601
+--S 171 of 676
 B(i,j) == (7.0*j/16.0)+4*sin(i*%pi/80)*sin((j-10)*%pi/120)
 --R                                                                   Type: Void
---E 96
+--E 171
 
---S 97 of 601
+--S 172 of 676
 C(i,j) == 10*cos((i+80)*%pi/80)*sin((j+110)*%pi/100)^9
 --R                                                                   Type: Void
---E 97
+--E 172
 
---S 98 of 601
+--S 173 of 676
 D(i,j) == (7.0*j/16.0)-4*sin(i*%pi/80)-A(i)*sin((10-j)*%pi/20)
 --R                                                                   Type: Void
---E 98
+--E 173
 
---S 99 of 601
+--S 174 of 676
 E(i,j) == 0.0 -- This was never defined.
 --R                                                                   Type: Void
---E 99
+--E 174
 
---S 100 of 601
+--S 175 of 676
 X(i,j) == _
   if ((20 <= i) and (i <= 60)) _
    then 7*sin((i+40)*%pi/40)^3*sin((j+110)*%pi/100)^9+(3.0*i)/8.0 _
    else C(i,j)+(3.0*i)/8.0
 --R                                                                   Type: Void
---E 100
+--E 175
 
---S 101 of 601
+--S 176 of 676
 Y(i,j) == _
   if ((10 <= j) and (j <= 70)) _
    then B(i,j)-4*sin(i*%pi/80)*sin((70-j)*%pi/120) _
@@ -1047,14 +1760,14 @@ Y(i,j) == _
          then D(i,j) _
          else E(i,j)
 --R                                                                   Type: Void
---E 101
+--E 176
 
---S 102 of 601
+--S 177 of 676
 Z(i,j) == 3*sin((i+10)*%pi/20)*sin(j*%pi/80)^1.5
 --R                                                                   Type: Void
---E 102
+--E 177
 
---S 103 of 601
+--S 178 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..80,j=0..80,_
           style=="smooth",title=="Farfalle")
 --R   Compiling function C with type (Variable i,Variable j) -> Expression
@@ -1081,17 +1794,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..80,j=0..80,_
 --R
 --R   (9)  ThreeDimensionalViewport: "Farfalle"
 --R                                               Type: ThreeDimensionalViewport
---E 103
+--E 178
 
---S 104 of 601
+--S 179 of 676
 zoom(v3d,0.5,0.5,0.5)
 --R                                                                   Type: Void
---E 104
+--E 179
 
---S 105 of 601
+--S 180 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 105
+--E 180
 
 \end{chunk}
 
@@ -1104,32 +1817,32 @@ central pinch create the iconic shape.
 \begin{chunk}{*}
 )clear all
 
---S 106 of 601
+--S 181 of 676
 A(i) == 30*cos(i*%pi/125)+0.5*cos((6*i)*%pi/25)
 --R                                                                   Type: Void
---E 106
+--E 181
 
---S 107 of 601
+--S 182 of 676
 B(i) == 30*sin(i*%pi/125)+0.5*sin((6*i)*%pi/25)
 --R                                                                   Type: Void
---E 107
+--E 182
 
---S 108 of 601
+--S 183 of 676
 X(i,j) == cos(3*A(i)*%pi/100)
 --R                                                                   Type: Void
---E 108
+--E 183
 
---S 109 of 601
+--S 184 of 676
 Y(i,j) == 0.5*sin((3*A(i))*%pi/100)*(1+sin(j*%pi/100)^10)
 --R                                                                   Type: Void
---E 109
+--E 184
 
---S 110 of 601
+--S 185 of 676
 Z(i,j) == B(i)*j/500.0
 --R                                                                   Type: Void
---E 110
+--E 185
 
---S 111 of 601
+--S 186 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..250,j=0..50,_
           style=="smooth",title=="Farfalline")
 --R   Compiling function A with type Variable i -> Expression Float 
@@ -1150,17 +1863,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..250,j=0..50,_
 --R
 --R   (6)  ThreeDimensionalViewport: "Farfalline"
 --R                                               Type: ThreeDimensionalViewport
---E 111
+--E 186
 
---S 112 of 601
+--S 187 of 676
 rotate(v3d,45,45)
 --R                                                                   Type: Void
---E 112
+--E 187
 
---S 113 of 601
+--S 188 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 113
+--E 188
 
 \end{chunk}
 
@@ -1173,46 +1886,46 @@ moscata} (nutmeg).
 \begin{chunk}{*}
 )clear all
 
---S 114 of 601
+--S 189 of 676
 A(i,j) == 10*cos((i+70)*%pi/70)*sin((2*j)*%pi/175+1.1*%pi)^9
 --R                                                                   Type: Void
---E 114
+--E 189
 
---S 115 of 601
+--S 190 of 676
 B(j)   == 0.3*sin((6-j)*%pi/7+0.4*%pi)
 --R                                                                   Type: Void
---E 115
+--E 190
 
---S 116 of 601
+--S 191 of 676
 C(i,j) == _
   if ((17 <= i) and (i <= 52)) _
    then 7*sin((i+35)*%pi/35)^3*sin((2*j*%pi)/175+1.1*%pi)^9 _
    else A(i,j)
 --R                                                                   Type: Void
---E 116
+--E 191
 
---S 117 of 601
+--S 192 of 676
 D(i,j) == (j/2.0)+4*sin(i*%pi/70)*sin((j-10)*%pi/100) - _
           4*sin(i*%pi/70)*sin((60-j)*%pi/100)
 --R                                                                   Type: Void
---E 117
+--E 192
 
---S 118 of 601
+--S 193 of 676
 E(i,j) == (j/2.0)+4*sin(i*%pi/70)+0.3*sin((2*i+2.8)*%pi/7)*sin((j-60)*%pi/20)
 --R                                                                   Type: Void
---E 118
+--E 193
 
---S 119 of 601
+--S 194 of 676
 F(i,j) == (j/2.0)-4*sin(i*%pi/70)-0.3*sin((2*i+2.8)*%pi/7)*sin((10-j)*%pi/20)
 --R                                                                   Type: Void
---E 119
+--E 194
 
---S 120 of 601
+--S 195 of 676
 X(i,j) == (3.0*i)/7.0+C(i,j)
 --R                                                                   Type: Void
---E 120
+--E 195
 
---S 121 of 601
+--S 196 of 676
 Y(i,j) == _
   if ((10 <= j) and (j <= 60)) _
    then D(i,j) _
@@ -1220,14 +1933,14 @@ Y(i,j) == _
          then F(i,j) _
          else E(i,j)
 --R                                                                   Type: Void
---E 121
+--E 196
 
---S 122 of 601
+--S 197 of 676
 Z(i,j) == 3*sin((2*i+17.5)*%pi/35.)*sin(j*%pi/70)^1.5
 --R                                                                   Type: Void
---E 122
+--E 197
 
---S 123 of 601
+--S 198 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..70,j=0..70,_
           style=="smooth",title=="Farfalloni")
 --R   Compiling function A with type (Variable i,Variable j) -> Expression
@@ -1256,17 +1969,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..70,j=0..70,_
 --R
 --R   (10)  ThreeDimensionalViewport: "Farfalloni"
 --R                                               Type: ThreeDimensionalViewport
---E 123
+--E 198
 
---S 124 of 601
+--S 199 of 676
 zoom(v3d,2.5,2.5,2.5)
 --R                                                                   Type: Void
---E 124
+--E 199
 
---S 125 of 601
+--S 200 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 125
+--E 200
 
 \end{chunk}
 
@@ -1279,24 +1992,24 @@ basil, olive oil, garlic, and red chilli flakes.
 \begin{chunk}{*}
 )clear all
 
---S 126 of 601
+--S 201 of 676
 X(i,j) == 5*cos(i*%pi/50)+0.5*cos(i*%pi/50)*(1+sin(j*%pi/100)) + _
           0.5*cos((i+25)*%pi/25)*(1+sin(j*%pi/5))
 --R                                                                   Type: Void
---E 126
+--E 201
 
---S 127 of 601
+--S 202 of 676
 Y(i,j) == 5*sin(i*%pi/50)+0.5*sin(i*%pi/50)*(1+sin(j*%pi/100)) + _
           0.5*cos(i**%pi/25)*(1+sin(j*%pi/5))
 --R                                                                   Type: Void
---E 127
+--E 202
 
---S 128 of 601
+--S 203 of 676
 Z(i,j) == j/2.0+2*sin((3*i+25)*%pi/50)
 --R                                                                   Type: Void
---E 128
+--E 203
 
---S 129 of 601
+--S 204 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..100,j=0..100,_
           style=="smooth",title=="Festonati")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -1315,17 +2028,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..100,j=0..100,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Festonati"
 --R                                               Type: ThreeDimensionalViewport
---E 129
+--E 204
 
---S 130 of 601
+--S 205 of 676
 zoom(v3d,3.0,3.0,3.0)
 --R                                                                   Type: Void
---E 130
+--E 205
 
---S 131 of 601
+--S 206 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 131
+--E 206
 
 \end{chunk}
 
@@ -1334,22 +2047,22 @@ This famous {\sl pasta lunga} (long pasta) is made with durum-wheat flour, water
 \begin{chunk}{*}
 )clear all
 
---S 132 of 601
+--S 207 of 676
 X(i,j) == 1.8*sin((4-i)*%pi/375)
 --R                                                                   Type: Void
---E 132
+--E 207
 
---S 133 of 601
+--S 208 of 676
 Y(i,y) == 1.6*cos((6-i)*%pi/375)*sin((3-i)*%pi/750)
 --R                                                                   Type: Void
---E 133
+--E 208
 
---S 134 of 601
+--S 209 of 676
 Z(i,j) == i/75.0 + j/20.0
 --R                                                                   Type: Void
---E 134
+--E 209
 
---S 135 of 601
+--S 210 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..10,_
           style=="smooth",title=="Fettuccine")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -1368,17 +2081,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..10,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Fettuccine"
 --R                                               Type: ThreeDimensionalViewport
---E 135
+--E 210
 
---S 136 of 601
+--S 211 of 676
 zoom(v3d,2.0,2.0,2.0)
 --R                                                                   Type: Void
---E 136
+--E 211
 
---S 137 of 601
+--S 212 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 137
+--E 212
 
 \end{chunk}
 
@@ -1391,35 +2104,35 @@ disk, {\sl fiocchi rigati} can be served in a tomato and vodka sauce.
 \begin{chunk}{*}
 )clear all
 
---S 138 of 601
+--S 213 of 676
 A(i,j) == 10*cos((i+80)*%pi/80)*sin((j+110)*%pi/100)^9
 --R                                                                   Type: Void
---E 138
+--E 213
 
---S 139 of 601
+--S 214 of 676
 B(i,j) == 35.0*j/80.0+4*sin(i*%pi/80)*sin((j-10)*%pi/120)
 --R                                                                   Type: Void
---E 139
+--E 214
 
---S 140 of 601
+--S 215 of 676
 X(i,j) == _
   if ((20 <= i) and (i <= 60)) _
    then 7*sin((i+40)*%pi/40)^3*sin((j+110)*%pi/100)^9 + 30.0*i/80.0 _
    else A(i,j) + 30.0*i/80.0
 --R                                                                   Type: Void
---E 140
+--E 215
 
---S 141 of 601
+--S 216 of 676
 Y(i,j) == B(i,j)-4*sin(i*%pi/80)*sin((70-j)*%pi/120)
 --R                                                                   Type: Void
---E 141
+--E 216
 
---S 142 of 601
+--S 217 of 676
 Z(i,j) == 3*sin((1+10)*%pi/20)*sin(j*%pi/80)^1.5-0.7*((sin(3*j*%pi/8)+1)/2)^4
 --R                                                                   Type: Void
---E 142
+--E 217
 
---S 143 of 601
+--S 218 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..80,j=0..80,_
            style=="smooth",title=="Fiocchi Rigati")
 --R   Compiling function A with type (Variable i,Variable j) -> Expression
@@ -1442,17 +2155,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..80,j=0..80,_
 --R
 --R   (6)  ThreeDimensionalViewport: "Fiocchi Rigati"
 --R                                               Type: ThreeDimensionalViewport
---E 143
+--E 218
 
---S 144 of 601
+--S 219 of 676
 zoom(v3d,2.0,2.0,2.0)
 --R                                                                   Type: Void
---E 144
+--E 219
 
---S 145 of 601
+--S 220 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 145
+--E 220
 
 \end{chunk}
 
@@ -1465,22 +2178,22 @@ the Marche, east central Italy.
 \begin{chunk}{*}
 )clear all
 
---S 146 of 601
+--S 221 of 676
 X(i,j) == (1.5+3*(i/70.0)^5+4*sin(j*%pi/200)^50)*cos(4*i*%pi/175)
 --R                                                                   Type: Void
---E 146
+--E 221
 
---S 147 of 601
+--S 222 of 676
 Y(i,j) == (1.5+3*(i/70.0)^5+4*sin(j*%pi/200)^50)*sin(4*i*%pi/175)
 --R                                                                   Type: Void
---E 147
+--E 222
 
---S 148 of 601
+--S 223 of 676
 Z(i,j) == j/50.0+cos(3*i*%pi/14)*sin(j*%pi/1000)
 --R                                                                   Type: Void
---E 148
+--E 223
 
---S 149 of 601
+--S 224 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..70,j=0..1000,_
            style=="smooth",title=="Fisarmoniche")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -1499,17 +2212,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..70,j=0..1000,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Fisarmoniche"
 --R                                               Type: ThreeDimensionalViewport
---E 149
+--E 224
 
---S 150 of 601
+--S 225 of 676
 zoom(v3d,2.0,2.0,2.0)
 --R                                                                   Type: Void
---E 150
+--E 225
 
---S 151 of 601
+--S 226 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 151
+--E 226
 
 \end{chunk}
 
@@ -1520,22 +2233,22 @@ as a {\sl minestrone} made from chopped and sauteed celeriac.
 \begin{chunk}{*}
 )clear all
 
---S 152 of 601
+--S 227 of 676
 A(i,j) == 5*cos(i*%pi/150)+0.05*cos(i*%pi/3)*sin(j*%pi/60)^2000
 --R                                                                   Type: Void
---E 152
+--E 227
 
---S 153 of 601
+--S 228 of 676
 B(i,j) == j/30.0*(5*sin(i*%pi/150)+0.05*sin(i*%pi/3))
 --R                                                                   Type: Void
---E 153
+--E 228
 
---S 154 of 601
+--S 229 of 676
 C(i,j) == j/10.0*(2*sin(i*%pi/150)+0.05*sin(i*%pi/3))
 --R                                                                   Type: Void
---E 154
+--E 229
 
---S 155 of 601
+--S 230 of 676
 D(i,j) == _
   if (i <= 150) _
    then B(i,j) _
@@ -1543,24 +2256,24 @@ D(i,j) == _
          then C(i,j) _
          else 2*sin(i*%pi/150)+0.05*sin(i*%pi/6)
 --R                                                                   Type: Void
---E 155
+--E 230
 
---S 156 of 601
+--S 231 of 676
 X(i,j) == 0.05*cos(A(i,j)*%pi/5)+0.3*cos(A(i,j)*%pi/5)*sin(3*D(i,j)*%pi/50)^2
 --R                                                                   Type: Void
---E 156
+--E 231
 
---S 157 of 601
+--S 232 of 676
 Y(i,j) == 0.01*sin(A(i,j)*%pi/5)+0.3*sin(A(i,j)*%pi/5)*sin(3*D(i,j)*%pi/50)^2
 --R                                                                   Type: Void
---E 157
+--E 232
 
---S 158 of 601
+--S 233 of 676
 Z(i,j) == 0.25*sin((D(i,j)+3)*%pi/10)
 --R                                                                   Type: Void
---E 158
+--E 233
 
---S 159 of 601
+--S 234 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..300,j=0..30,_
            style=="smooth",title=="Funghini")
 --R   Compiling function A with type (Variable i,Variable j) -> Expression
@@ -1587,12 +2300,12 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..300,j=0..30,_
 --R
 --R   (8)  ThreeDimensionalViewport: "Funghini"
 --R                                               Type: ThreeDimensionalViewport
---E 159
+--E 234
 
---S 160 of 601
+--S 235 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 160
+--E 235
 
 \end{chunk}
 
@@ -1605,22 +2318,22 @@ slices of spicy sausage.
 \begin{chunk}{*}
 )clear all
 
---S 161 of 601
+--S 236 of 676
 X(i,j) == 6*cos((3*i+10)*%pi/100)*cos(j*%pi/25)
 --R                                                                   Type: Void
---E 161
+--E 236
 
---S 162 of 601
+--S 237 of 676
 Y(i,j) == 6*sin((3*i+10)*%pi/100)*cos(j*%pi/25)
 --R                                                                   Type: Void
---E 162
+--E 237
 
---S 163 of 601
+--S 238 of 676
 Z(i,j) == (3.0*i)/20.0+2.5*cos((j+12.5)*%pi/25)
 --R                                                                   Type: Void
---E 163
+--E 238
 
---S 164 of 601
+--S 239 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..200,j=0..25,_
            style=="smooth",title=="Fusilli")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -1639,21 +2352,22 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..200,j=0..25,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Fusilli"
 --R                                               Type: ThreeDimensionalViewport
---E 164
+--E 239
 
---S 165 of 601
+--S 240 of 676
 zoom(v3d,2.0,2.0,2.0)
 --R                                                                   Type: Void
---E 165
+--E 240
 
---S 166 of 601
+--S 241 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 166
+--E 241
 
 \end{chunk}
 
-\section{Fusilli al Ferretto} To create this Neapolitan variety of
+\section{Fusilli al Ferretto} 
+To create this Neapolitan variety of
 {\sl fusilli}, a small amount of durum-wheat flour is kneaded and
 placed along a {\sl ferretto} (small iron stick) that is then rolled
 between the hands to create a thick irregular twist of dough. The
@@ -1662,28 +2376,28 @@ spasa}. {\sl Fusilli al ferretto} are best dished up with a lamb {\sl ragu}.
 \begin{chunk}{*}
 )clear all
 
---S 167 of 601
+--S 242 of 676
 A(i,j) == 6.0*i/7.0+15*cos(j*%pi/20)
 --R                                                                   Type: Void
---E 167
+--E 242
 
---S 168 of 601
+--S 243 of 676
 X(i,j) == (3+1.5*sin(i*%pi/140)^0.5*sin(j*%pi/20))*sin(13*i*%pi/280) + _
           5*sin(2*A(i,j)*%pi/135)
 --R                                                                   Type: Void
---E 168
+--E 243
 
---S 169 of 601
+--S 244 of 676
 Y(i,j) == (3+1.5*sin(i*%pi/140)^0.5*sin(j*%pi/20))*cos(13*i*%pi/280)
 --R                                                                   Type: Void
---E 169
+--E 244
 
---S 170 of 601
+--S 245 of 676
 Z(i,j) == A(i,j)
 --R                                                                   Type: Void
---E 170
+--E 245
 
---S 171 of 601
+--S 246 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..140,j=0..40,_
            style=="smooth",title=="Fusilli al Ferretto")
 --R   Compiling function A with type (Variable i,Variable j) -> Expression
@@ -1704,17 +2418,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..140,j=0..40,_
 --R
 --R   (5)  ThreeDimensionalViewport: "Fusilli al Ferretto"
 --R                                               Type: ThreeDimensionalViewport
---E 171
+--E 246
 
---S 172 of 601
+--S 247 of 676
 zoom(v3d,3.0,3.0,3.0)
 --R                                                                   Type: Void
---E 172
+--E 247
 
---S 173 of 601
+--S 248 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 173
+--E 248
 
 \end{chunk}
 
@@ -1725,22 +2439,22 @@ or may also be combined with rocket and lemon to form a lighter dish.
 \begin{chunk}{*}
 )clear all
 
---S 174 of 601
+--S 249 of 676
 X(i,j) == 6*cos(j*%pi/50)*cos((i+2.5)*%pi/25)
 --R                                                                   Type: Void
---E 174
+--E 249
 
---S 175 of 601
+--S 250 of 676
 Y(i,j) == 6*cos(j*%pi/50)*sin((i+2.5)*%pi/25)
 --R                                                                   Type: Void
---E 175
+--E 250
 
---S 176 of 601
+--S 251 of 676
 Z(i,j) == 2.0*i/3.0 + 14*cos((j+25)*%pi/50)
 --R                                                                   Type: Void
---E 176
+--E 251
 
---S 177 of 601
+--S 252 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..50,_
            style=="smooth",title=="Fusilli Capri")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -1759,17 +2473,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..50,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Fusilli Capri"
 --R                                               Type: ThreeDimensionalViewport
---E 177
+--E 252
 
---S 178 of 601
+--S 253 of 676
 zoom(v3d,2.0,2.0,2.0)
 --R                                                                   Type: Void
---E 178
+--E 253
 
---S 179 of 601
+--S 254 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 179
+--E 254
 
 \end{chunk}
 
@@ -1782,37 +2496,37 @@ also be combined with thick vegetable sauces and baked in an oven.
 \begin{chunk}{*}
 )clear all
 
---S 180 of 601
+--S 255 of 676
 A(i,j) == 10+cos(i*%pi/10)+2*cos((j+10)*%pi/10)+10*cos((j+140)*%pi/160)
 --R                                                                   Type: Void
---E 180
+--E 255
 
---S 181 of 601
+--S 256 of 676
 B(i,j) == 20+cos(i*%pi/10)+2*cos((j+10)*%pi/10)
 --R                                                                   Type: Void
---E 181
+--E 256
 
---S 182 of 601
+--S 257 of 676
 C(i,j) == (j+10.0)*%pi/10.0
 --R                                                                   Type: Void
---E 182
+--E 257
 
---S 183 of 601
+--S 258 of 676
 D(i,j) == i*%pi/10.0
 --R                                                                   Type: Void
---E 183
+--E 258
 
---S 184 of 601
+--S 259 of 676
 E(i,j) == 7+20*sin((j-20)*%pi/160)
 --R                                                                   Type: Void
---E 184
+--E 259
 
---S 185 of 601
+--S 260 of 676
 F(i,j) == 70*(0.1-(j-180.0)/200.0)
 --R                                                                   Type: Void
---E 185
+--E 260
 
---S 186 of 601
+--S 261 of 676
 X(i,j) == _
   if ((20 <= j) and (j <= 180)) _
    then A(i,j) _
@@ -1820,17 +2534,17 @@ X(i,j) == _
          then cos(D(i,j))+2*cos(C(i,j)) _
          else B(i,j)
 --R                                                                   Type: Void
---E 186
+--E 261
 
---S 187 of 601
+--S 262 of 676
 Y(i,j) == _
   if ((20 <= j) and (j <= 180)) _
    then sin(D(i,j))+2*sin(C(i,j)) _
    else sin(D(i,j))+2*sin(C(i,j))
 --R                                                                   Type: Void
---E 187
+--E 262
 
---S 188 of 601
+--S 263 of 676
 Z(i,j) == _
   if ((20 <= j) and (j <= 180)) _
    then E(i,j) _
@@ -1838,9 +2552,9 @@ Z(i,j) == _
          then (7.0*j/20.0) _
          else F(i,j)
 --R                                                                   Type: Void
---E 188
+--E 263
 
---S 189 of 601
+--S 264 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..20,j=0..200,_
            style=="smooth",title=="Fusilli Lunghi Bucati")
 --R   Compiling function A with type (Variable i,Variable j) -> Expression
@@ -1871,17 +2585,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..20,j=0..200,_
 --R
 --R   (10)  ThreeDimensionalViewport: "Fusilli Lunghi Bucati"
 --R                                               Type: ThreeDimensionalViewport
---E 189
+--E 264
 
---S 190 of 601
+--S 265 of 676
 zoom(v3d,2.0,2.0,2.0)
 --R                                                                   Type: Void
---E 190
+--E 265
 
---S 191 of 601
+--S 266 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 191
+--E 266
 
 \end{chunk}
 
@@ -1894,43 +2608,43 @@ boscaiola} (woodsman's) sauce of mushrooms.
 \begin{chunk}{*}
 )clear all
 
---S 192 of 601
+--S 267 of 676
 A(i)   == (1+sin(i*%pi+1.5*%pi)/2)^5
 --R                                                                   Type: Void
---E 192
+--E 267
 
---S 193 of 601
+--S 268 of 676
 B(i,j) == 0.4*sin(A(i/140)*%pi+0.5*%pi)^1000*cos(j*%pi/70)
 --R                                                                   Type: Void
---E 193
+--E 268
 
---S 194 of 601
+--S 269 of 676
 C(i,j) == 0.15*sin(A(i/140)*%pi+0.5*%pi)^1000*cos(j*%pi/7)
 --R                                                                   Type: Void
---E 194
+--E 269
 
---S 195 of 601
+--S 270 of 676
 D(i,j) == 0.4*cos(A(i/140)*%pi)^1000*sin(j*%pi/70)
 --R                                                                   Type: Void
---E 195
+--E 270
 
---S 196 of 601
+--S 271 of 676
 X(i,j) == (0.5+0.3*cos(A(i/140)*2*%pi))*cos(j*%pi/70) + _
           0.15*(j/70.0)^10*cos(A(i/140)*2*%pi)^3 + B(i,j)
 --R                                                                   Type: Void
---E 196
+--E 271
 
---S 197 of 601
+--S 272 of 676
 Y(i,j) == 0.35*sin(A(i/140)*2*%pi)+0.15*(j/70.0)*sin(A(i/140)*2*%pi)+C(i,j)
 --R                                                                   Type: Void
---E 197
+--E 272
 
---S 198 of 601
+--S 273 of 676
 Z(i,j) == (0.4+0.3*cos(A(i/140)*2*%pi))*sin(j*%pi/70) + D(i,j)
 --R                                                                   Type: Void
---E 198
+--E 273
 
---S 199 of 601
+--S 274 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..140,j=0..70,_
            style=="smooth",title=="Galletti")
 --R   Compiling function A with type Polynomial Fraction Integer -> 
@@ -1957,12 +2671,12 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..140,j=0..70,_
 --R
 --R   (8)  ThreeDimensionalViewport: "Galletti"
 --R                                               Type: ThreeDimensionalViewport
---E 199
+--E 274
 
---S 200 of 601
+--S 275 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 200
+--E 275
 
 \end{chunk}
 
@@ -1975,17 +2689,17 @@ garganelli} are also sometimes served in hare sauce with chopped bacon.
 \begin{chunk}{*}
 )clear all
 
---S 201 of 601
+--S 276 of 676
 A(i,j) == (i-25.0)/125.0*j
 --R                                                                   Type: Void
---E 201
+--E 276
 
---S 202 of 601
+--S 277 of 676
 B(i,j) == (i-25.0)/125.0*(150.0-j)
 --R                                                                   Type: Void
---E 202
+--E 277
 
---S 203 of 601
+--S 278 of 676
 C(i,j) == _
   if ((j <= 75) or (i <= 25)) _
    then A(i,j) _
@@ -1995,24 +2709,24 @@ C(i,j) == _
                then B(i,j) _
                else A(i,j)
 --R                                                                   Type: Void
---E 203
+--E 278
 
---S 204 of 601
+--S 279 of 676
 X(i,j) == 0.1*cos(j*%pi/3)+(3+sin(C(i,j)*%pi/60))*cos(7*C(i,j)*%pi/60)
 --R                                                                   Type: Void
---E 204
+--E 279
 
---S 205 of 601
+--S 280 of 676
 Y(i,j) == 0.1*sin(j*%pi/3)+(3+sin(C(i,j)*%pi/60))*sin(7*C(i,j)*%pi/60)
 --R                                                                   Type: Void
---E 205
+--E 280
 
---S 206 of 601
+--S 281 of 676
 Z(i,j) == 6.0*j/25.0+C(i,j)/4.0
 --R                                                                   Type: Void
---E 206
+--E 281
 
---S 207 of 601
+--S 282 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..50,j=0..150,_
            style=="smooth",title=="Garganelli")
 --R   Compiling function A with type (Variable i,Variable j) -> Polynomial
@@ -2037,17 +2751,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..50,j=0..150,_
 --R
 --R   (7)  ThreeDimensionalViewport: "Garganelli"
 --R                                               Type: ThreeDimensionalViewport
---E 207
+--E 282
 
---S 208 of 601
+--S 283 of 676
 zoom(v3d,2.0,2.0,2.0)
 --R                                                                   Type: Void
---E 208
+--E 283
 
---S 209 of 601
+--S 284 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 209
+--E 284
 
 \end{chunk}
 
@@ -2060,22 +2774,22 @@ salads.
 \begin{chunk}{*}
 )clear all
 
---S 210 of 601
+--S 285 of 676
 X(i,j) == 6*cos(j*1.9*%pi/50+0.55*%pi)*cos(3.0*i/25.0)
 --R                                                                   Type: Void
---E 210
+--E 285
 
---S 211 of 601
+--S 286 of 676
 Y(i,j) == 6*cos(j*1.9*%pi/50+0.55*%pi)*sin(3.0*i/25.0)
 --R                                                                   Type: Void
---E 211
+--E 286
 
---S 212 of 601
+--S 287 of 676
 Z(i,j) == 8*sin(j*1.9*%pi/50+0.55*%pi)+3.0*i/4.0
 --R                                                                   Type: Void
---E 212
+--E 287
 
---S 213 of 601
+--S 288 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..100,j=0..50,_
            style=="smooth",title=="Gemelli")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -2094,17 +2808,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..100,j=0..50,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Gemelli"
 --R                                               Type: ThreeDimensionalViewport
---E 213
+--E 288
 
---S 214 of 601
+--S 289 of 676
 zoom(v3d,2.0,2.0,2.0)
 --R                                                                   Type: Void
---E 214
+--E 289
 
---S 215 of 601
+--S 290 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 215
+--E 290
 
 \end{chunk}
 
@@ -2116,22 +2830,22 @@ capture thick meaty sauces.
 \begin{chunk}{*}
 )clear all
 
---S 216 of 601
+--S 291 of 676
 X(i,j) == (0.8-0.6*sin(j*%pi/80)^0.5)*cos(i*%pi/50)+0.08*sin(j*%pi/40)
 --R                                                                   Type: Void
---E 216
+--E 291
 
---S 217 of 601
+--S 292 of 676
 Y(i,j) == (0.8-0.6*sin(j*%pi/80)^0.5)*sin(i*%pi/50)+0.08*sin(j*%pi/40)
 --R                                                                   Type: Void
---E 217
+--E 292
 
---S 218 of 601
+--S 293 of 676
 Z(i,j) == 1.1*j/40.0+0.7*(1-sin((150-i)*%pi/300))^2
 --R                                                                   Type: Void
---E 218
+--E 293
 
---S 219 of 601
+--S 294 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..40,_
            style=="smooth",title=="Gigli")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -2150,17 +2864,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..40,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Gigli"
 --R                                               Type: ThreeDimensionalViewport
---E 219
+--E 294
 
---S 220 of 601
+--S 295 of 676
 zoom(v3d,2.0,2.0,2.0)
 --R                                                                   Type: Void
---E 220
+--E 295
 
---S 221 of 601
+--S 296 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 221
+--E 296
 
 \end{chunk}
 
@@ -2170,35 +2884,35 @@ ondulato} are made of durum-wheat flour and water.
 \begin{chunk}{*}
 )clear all
 
---S 222 of 601
+--S 297 of 676
 A(i,j) == 0.6+0.03*((40.0-j)/40.0)^10*cos((4*i+75)*%pi/15) - _
           0.5*sin(j*%pi/80)^0.6
 --R                                                                   Type: Void
---E 222
+--E 297
 
---S 223 of 601
+--S 298 of 676
 B(i,j) == sin(2*i*%pi/75)+(i/150.0)^10*(0.08*sin(j*%pi/40)+0.03*sin(j*%pi/5))
 --R                                                                   Type: Void
---E 223
+--E 298
 
---S 224 of 601
+--S 299 of 676
 X(i,j) == A(i,j)*cos(2*i*%pi/75)+(i/150.0)^10 * _
           (0.08*sin(j*%pi/40)+0.03*cos(j*%pi/5))
 --R                                                                   Type: Void
---E 224
+--E 299
 
---S 225 of 601
+--S 300 of 676
 Y(i,j) == (0.6+0.03*((40.0-j)/40.0)^10*sin(4*i*%pi/15)-0.5*sin(j*%pi/80)^0.6)*_
           B(i,j)
 --R                                                                   Type: Void
---E 225
+--E 300
 
---S 226 of 601
+--S 301 of 676
 Z(i,j) == 1.1*j/40.0+0.7*(1-sin((150.0-i)*%pi/300.0))
 --R                                                                   Type: Void
---E 226
+--E 301
 
---S 227 of 601
+--S 302 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..40,_
            style=="smooth",title=="Giglio Ondulato")
 --R   Compiling function A with type (Variable i,Variable j) -> Expression
@@ -2221,17 +2935,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..40,_
 --R
 --R   (6)  ThreeDimensionalViewport: "Giglio Ondulato"
 --R                                               Type: ThreeDimensionalViewport
---E 227
+--E 302
 
---S 228 of 601
+--S 303 of 676
 zoom(v3d,2.0,2.0,2.0)
 --R                                                                   Type: Void
---E 228
+--E 303
 
---S 229 of 601
+--S 304 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 229
+--E 304
 
 \end{chunk}
 
@@ -2244,32 +2958,32 @@ to the west of Italy.
 \begin{chunk}{*}
 )clear all
 
---S 230 of 601
+--S 305 of 676
 A(i)   == 0.8+3*sin(i*%pi/150)^0.8
 --R                                                                   Type: Void
---E 230
+--E 305
 
---S 231 of 601
+--S 306 of 676
 B(i,j) == abs(cos((2*j+7.5)*%pi/15))
 --R                                                                   Type: Void
---E 231
+--E 306
 
---S 232 of 601
+--S 307 of 676
 X(i,j) == A(i)*cos(i*%pi/50)+0.2*cos(i*%pi/50)*sin(j*%pi/150)*B(i,j)
 --R                                                                   Type: Void
---E 232
+--E 307
 
---S 233 of 601
+--S 308 of 676
 Y(i,j) == A(i)*sin(i*%pi/50)+0.2*sin(i*%pi/50)*sin(j*%pi/150)*B(i,j)
 --R                                                                   Type: Void
---E 233
+--E 308
 
---S 234 of 601
+--S 309 of 676
 Z(i,j) == 13.0*cos(j*%pi/150)
 --R                                                                   Type: Void
---E 234
+--E 309
 
---S 235 of 601
+--S 310 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..50,j=0..150,_
            style=="smooth",title=="Gnocchetti Sardi")
 --R   Compiling function A with type Variable i -> Expression Float 
@@ -2291,17 +3005,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..50,j=0..150,_
 --R
 --R   (6)  ThreeDimensionalViewport: "Gnocchetti Sardi"
 --R                                               Type: ThreeDimensionalViewport
---E 235
+--E 310
 
---S 236 of 601
+--S 311 of 676
 rotate(v3d,45,45)
 --R                                                                   Type: Void
---E 236
+--E 311
 
---S 237 of 601
+--S 312 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 237
+--E 312
 
 \end{chunk}
 
@@ -2313,34 +3027,34 @@ to type. {\sl Gnocchi} are often added to a sauce made from fontina cheese.
 \begin{chunk}{*}
 )clear all
 
---S 238 of 601
+--S 313 of 676
 A(i,j) == i/40.0*sin(j*%pi/130)
 --R                                                                   Type: Void
---E 238
+--E 313
 
---S 239 of 601
+--S 314 of 676
 B(i,j) == abs(cos((j+13)*%pi/26))
 --R                                                                   Type: Void
---E 239
+--E 314
 
---S 240 of 601
+--S 315 of 676
 X(i,j) == 0.2*cos(i*1.3*%pi/40)*sin(j*%pi/130)*B(i,j) + _
           A(i,j)*cos(i*1.3*%pi/40)
 --R                                                                   Type: Void
---E 240
+--E 315
 
---S 241 of 601
+--S 316 of 676
 Y(i,j) == 0.2*sin(i*1.3*%pi/40)*sin(j*%pi/130)*B(i,j) + _
           A(i,j)*sin(i*1.3*%pi/40)
 --R                                                                   Type: Void
---E 241
+--E 316
 
---S 242 of 601
+--S 317 of 676
 Z(i,j) == 1.5*cos(j*%pi/130)
 --R                                                                   Type: Void
---E 242
+--E 317
 
---S 243 of 601
+--S 318 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..40,j=0..130,_
            style=="smooth",title=="Gnocchi")
 --R   Compiling function B with type (Variable i,Variable j) -> Expression
@@ -2363,12 +3077,12 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..40,j=0..130,_
 --R
 --R   (6)  ThreeDimensionalViewport: "Gnocchi"
 --R                                               Type: ThreeDimensionalViewport
---E 243
+--E 318
 
---S 244 of 601
+--S 319 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 244
+--E 319
 
 \end{chunk}
 
@@ -2381,22 +3095,22 @@ alla pomodoro} (with a light tomato sauce).
 \begin{chunk}{*}
 )clear all
 
---S 245 of 601
+--S 320 of 676
 X(i,j) == (0.5+5.6*(j/150.0)^2+0.3*cos(2*i*%pi/25))*cos(2.1*j*%pi/150)
 --R                                                                   Type: Void
---E 245
+--E 320
 
---S 246 of 601
+--S 321 of 676
 Y(i,j) == 0.3*sin(2*i*%pi/25)
 --R                                                                   Type: Void
---E 246
+--E 321
 
---S 247 of 601
+--S 322 of 676
 Z(i,j) == (0.5+3.2*(j/150.0)^2+0.3*cos(2*i*%pi/25))*sin(2.1*j*%pi/150)
 --R                                                                   Type: Void
---E 247
+--E 322
 
---S 248 of 601
+--S 323 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..25,j=0..150,_
            style=="smooth",title=="Gramigna")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -2415,17 +3129,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..25,j=0..150,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Gramigna"
 --R                                               Type: ThreeDimensionalViewport
---E 248
+--E 323
 
---S 249 of 601
+--S 324 of 676
 zoom(v3d,2.0,2.0,2.0)
 --R                                                                   Type: Void
---E 249
+--E 324
 
---S 250 of 601
+--S 325 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 250
+--E 325
 
 \end{chunk}
 
@@ -2437,45 +3151,45 @@ Lancette} are also an excellent addition to mushroom or chicken soups.
 \begin{chunk}{*}
 )clear all
 
---S 251 of 601
+--S 326 of 676
 A(i,j) == 0.4*sin(5*j*%pi/9)
 --R                                                                   Type: Void
---E 251
+--E 326
 
---S 252 of 601
+--S 327 of 676
 B(i,j) == sin((j+45)*%pi/90)
 --R                                                                   Type: Void
---E 252
+--E 327
 
---S 253 of 601
+--S 328 of 676
 C(i,j) == (3.0*i-75.0)/5.0*sin(j*%pi/90)-(1-sin(i*%pi/50))^25*A(i,j)*B(i,j)
 --R                                                                   Type: Void
---E 253
+--E 328
 
---S 254 of 601
+--S 329 of 676
 D(i,j) == _
   if (i <= 25) _
    then C(i,j) _
    else 30.0*(i-25.0)/50.0*sin(j*%pi/90)+sin((i-25)*%pi/50)*A(i,j)*B(i,j)
 --R                                                                   Type: Void
---E 254
+--E 329
 
---S 255 of 601
+--S 330 of 676
 X(i,j) == 4*cos(3*D(i,j)*%pi/50)
 --R                                                                   Type: Void
---E 255
+--E 330
 
---S 256 of 601
+--S 331 of 676
 Y(i,j) == 4*sin(3*D(i,j)*%pi/50)*(0.3+(1-sin(j*%pi/90))^0.6)
 --R                                                                   Type: Void
---E 256
+--E 331
 
---S 257 of 601
+--S 332 of 676
 Z(i,j) == j/3.0
 --R                                                                   Type: Void
---E 257
+--E 332
 
---S 258 of 601
+--S 333 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..50,j=0..90,_
            style=="smooth",title=="Lancette")
 --R   Compiling function A with type (Variable i,Variable j) -> Expression
@@ -2502,17 +3216,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..50,j=0..90,_
 --R
 --R   (8)  ThreeDimensionalViewport: "Lancette"
 --R                                               Type: ThreeDimensionalViewport
---E 258
+--E 333
 
---S 259 of 601
+--S 334 of 676
 zoom(v3d,3.0,3.0,3.0)
 --R                                                                   Type: Void
---E 259
+--E 334
 
---S 260 of 601
+--S 335 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 260
+--E 335
 
 \end{chunk}
 
@@ -2526,7 +3240,7 @@ besciamella} sauce.
 \begin{chunk}{*}
 )clear all
 
---S 261 of 601
+--S 336 of 676
 X(i,j) == _
   if ((8 <= i) and (i <= 42)) _
    then 5.0/6.0+(5.0*i-40.0)/34.0 _
@@ -2534,14 +3248,14 @@ X(i,j) == _
          then 5.0*i/48.0 _
          else 5.0/6.0*(7+(i-42.0)/8)
 --R                                                                   Type: Void
---E 261
+--E 336
 
---S 262 of 601
+--S 337 of 676
 Y(i,j) == j/15.0
 --R                                                                   Type: Void
---E 262
+--E 337
 
---S 263 of 601
+--S 338 of 676
 Z(i,j) == _
   if ((8 <= i) and (i <= 42)) _
    then 0.0 _
@@ -2549,9 +3263,9 @@ Z(i,j) == _
          then (8.0-i)/32.0*cos((j+3)*%pi/6) _
          else 0.25*(i-42)/8.0*cos((j+9)*%pi/6)
 --R                                                                   Type: Void
---E 263
+--E 338
 
---S 264 of 601
+--S 339 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..50,j=0..150,_
            style=="smooth",title=="Lasagna Larga Doppia Riccia")
 --R   Compiling function X with type (Variable i,Variable j) -> Polynomial
@@ -2570,17 +3284,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..50,j=0..150,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Lasagna Larga Doppia Riccia"
 --R                                               Type: ThreeDimensionalViewport
---E 264
+--E 339
 
---S 265 of 601
+--S 340 of 676
 zoom(v3d,3.0,3.0,3.0)
 --R                                                                   Type: Void
---E 265
+--E 340
 
---S 266 of 601
+--S 341 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 266
+--E 341
 
 \end{chunk}
 
@@ -2593,22 +3307,22 @@ cream and soft cheese, flavoured with lemon, saffron, or ginger.
 \begin{chunk}{*}
 )clear all
 
---S 267 of 601
+--S 342 of 676
 X(i,j) == cos(i*%pi/75)
 --R                                                                   Type: Void
---E 267
+--E 342
 
---S 268 of 601
+--S 343 of 676
 Y(i,j) == 2*sin(i*%pi/75)
 --R                                                                   Type: Void
---E 268
+--E 343
 
---S 269 of 601
+--S 344 of 676
 Z(i,j) == j/5.0
 --R                                                                   Type: Void
---E 269
+--E 344
 
---S 270 of 601
+--S 345 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..50,_
            style=="smooth",title=="Linguine")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -2627,17 +3341,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..50,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Linguine"
 --R                                               Type: ThreeDimensionalViewport
---E 270
+--E 345
 
---S 271 of 601
+--S 346 of 676
 zoom(v3d,2.5,2.5,2.5)
 --R                                                                   Type: Void
---E 271
+--E 346
 
---S 272 of 601
+--S 347 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 272
+--E 347
 
 \end{chunk}
 
@@ -2650,34 +3364,34 @@ family ({\sl lumache}) are also available.
 \begin{chunk}{*}
 )clear all
 
---S 273 of 601
+--S 348 of 676
 A(i,j) == 0.45+0.01*cos(i*%pi/3)+j/300.0*abs(cos(i*%pi/240))*cos(i*%pi/120)^20
 --R                                                                   Type: Void
---E 273
+--E 348
 
---S 274 of 601
+--S 349 of 676
 B(i,j) == j/300.0*abs(cos(i*%pi/240))*sin(i*%pi/120) + _
           0.125*(j/60.0)^6*sin(i*%pi/120)
 --R                                                                   Type: Void
---E 274
+--E 349
 
---S 275 of 601
+--S 350 of 676
 X(i,j) == (0.4*cos(i*%pi/120)+A(i,j))*cos(j*%pi/60) + _
           0.48*(j/60.0)^6*sin((i+60)*%pi/120)^3
 --R                                                                   Type: Void
---E 275
+--E 350
 
---S 276 of 601
+--S 351 of 676
 Y(i,j) == 0.5*sin(i*%pi/120)+0.01*sin(i*%pi/3)+B(i,j)
 --R                                                                   Type: Void
---E 276
+--E 351
 
---S 277 of 601
+--S 352 of 676
 Z(i,j) == (0.45+0.4*cos(i*%pi/120))*sin(j*%pi/60)
 --R                                                                   Type: Void
---E 277
+--E 352
 
---S 278 of 601
+--S 353 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..240,j=0..60,_
            style=="smooth",title=="Lumaconi Rigati")
 --R   Compiling function A with type (Variable i,Variable j) -> Expression
@@ -2700,17 +3414,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..240,j=0..60,_
 --R
 --R   (6)  ThreeDimensionalViewport: "Lumaconi Rigati"
 --R                                               Type: ThreeDimensionalViewport
---E 278
+--E 353
 
---S 279 of 601
+--S 354 of 676
 rotate(v3d,90,180)
 --R                                                                   Type: Void
---E 279
+--E 354
 
---S 280 of 601
+--S 355 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 280
+--E 355
 
 \end{chunk}
 
@@ -2723,22 +3437,22 @@ of fennel.
 \begin{chunk}{*}
 )clear all
 
---S 281 of 601
+--S 356 of 676
 X(i,j) == 8*cos(i*%pi/75)+0.2*cos(4*i*%pi/15)+5*cos(j*%pi/100)
 --R                                                                   Type: Void
---E 281
+--E 356
 
---S 282 of 601
+--S 357 of 676
 Y(i,j) == 8*sin(i*%pi/75)+0.2*sin(4*i*%pi/15)+4*sin(j*%pi/100)
 --R                                                                   Type: Void
---E 282
+--E 357
 
---S 283 of 601
+--S 358 of 676
 Z(i,j) == 6.0*j/5.0
 --R                                                                   Type: Void
---E 283
+--E 358
 
---S 284 of 601
+--S 359 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..50,_
            style=="smooth",title=="Maccheroni")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -2757,17 +3471,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..50,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Maccheroni"
 --R                                               Type: ThreeDimensionalViewport
---E 284
+--E 359
 
---S 285 of 601
+--S 360 of 676
 zoom(v3d,2.0,2.0,2.0)
 --R                                                                   Type: Void
---E 285
+--E 360
 
---S 286 of 601
+--S 361 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 286
+--E 361
 
 \end{chunk}
 
@@ -2781,22 +3495,22 @@ name. Usually seved with a mutton {\sl ragu}, or {\sl pallottelle}
 \begin{chunk}{*}
 )clear all
 
---S 287 of 601
+--S 362 of 676
 X(i,j) == 0.05*cos(i*%pi/60)^3 + 0.05*cos(i*%pi/60)
 --R                                                                   Type: Void
---E 287
+--E 362
 
---S 288 of 601
+--S 363 of 676
 Y(i,j) == 0.05*sin(i*%pi/60)^3 + 0.05*sin(i*%pi/60)
 --R                                                                   Type: Void
---E 288
+--E 363
 
---S 289 of 601
+--S 364 of 676
 Z(i,j) == j/60.0
 --R                                                                   Type: Void
---E 289
+--E 364
 
---S 290 of 601
+--S 365 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..120,j=0..60,_
            style=="smooth",title=="Maccheroni Alla Chitarra")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -2815,17 +3529,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..120,j=0..60,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Maccheroni Alla Chitarra"
 --R                                               Type: ThreeDimensionalViewport
---E 290
+--E 365
 
---S 291 of 601
+--S 366 of 676
 zoom(v3d,2.5,2.5,2.5)
 --R                                                                   Type: Void
---E 291
+--E 366
 
---S 292 of 601
+--S 367 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 292
+--E 367
 
 \section{Mafaldine}
 Named at the turn of the twentieth century after Princess Mafalda of
@@ -2836,17 +3550,17 @@ or in seafood dishes.
 \begin{chunk}{*}
 )clear all
 
---S 293 of 601
+--S 368 of 676
 X(i,j) == 7.0*i/18.0
 --R                                                                   Type: Void
---E 293
+--E 368
 
---S 294 of 601
+--S 369 of 676
 Y(i,j) == j/3.0
 --R                                                                   Type: Void
---E 294
+--E 369
 
---S 295 of 601
+--S 370 of 676
 Z(i,j) == _
   if ((6 <= i) and (i <= 24)) _
    then 0.0 _
@@ -2854,9 +3568,9 @@ Z(i,j) == _
          then (6.0-i)/6.0*cos((j+5)*%pi/10) _
          else (i-24.0)/6.0*cos((j+15)*%pi/10)
 --R                                                                   Type: Void
---E 295
+--E 370
 
---S 296 of 601
+--S 371 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..30,j=0..150,_
            style=="smooth",title=="Mafaldine")
 --R   Compiling function X with type (Variable i,Variable j) -> Polynomial
@@ -2875,17 +3589,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..30,j=0..150,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Mafaldine"
 --R                                               Type: ThreeDimensionalViewport
---E 296
+--E 371
 
---S 297 of 601
+--S 372 of 676
 zoom(v3d,2.0,2.0,2.0)
 --R                                                                   Type: Void
---E 297
+--E 372
 
---S 298 of 601
+--S 373 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 298
+--E 373
 
 \end{chunk}
 
@@ -2898,46 +3612,46 @@ cheeses and covered in a savoury sauce, like filled dinner crepes.
 \begin{chunk}{*}
 )clear all
 
---S 299 of 601
+--S 374 of 676
 A(i,j) == -7*sin((i-100)*%pi/100)^2+0.3*sin((3*i-300)*%pi/10)
 --R                                                                   Type: Void
---E 299
+--E 374
 
---S 300 of 601
+--S 375 of 676
 B(i,j) == -8*cos((i-100)*%pi/100)+0.3*cos((3*i-300)*%pi/10)
 --R                                                                   Type: Void
---E 300
+--E 375
 
---S 301 of 601
+--S 376 of 676
 C(i,j) == -8*cos((i-100)*%pi/100)+22*sin((j-20)*%pi/40)
 --R                                                                   Type: Void
---E 301
+--E 376
 
---S 302 of 601
+--S 377 of 676
 X(i,j) == _
   if (i < 100) _
    then 7*sin(i*%pi/100)^2+0.3*sin(3*i*%pi/10) _
    else A(i,j)
 --R                                                                   Type: Void
---E 302
+--E 377
 
---S 303 of 601
+--S 378 of 676
 Y(i,j) == _
   if (i < 100) _
    then 8*cos(i*%pi/100)+0.3*cos(3*i*%pi/10) _
    else B(i,j)
 --R                                                                   Type: Void
---E 303
+--E 378
 
---S 304 of 601
+--S 379 of 676
 Z(i,j) == _
   if (i < 100) _
    then 8*cos(i*%pi/100)+22*sin((j-20)*%pi/40) _
    else C(i,j)
 --R                                                                   Type: Void
---E 304
+--E 379
 
---S 305 of 601
+--S 380 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..200,j=0..40,_
            style=="smooth",title=="Manicotti")
 --R   Compiling function A with type (Variable i,Variable j) -> Expression
@@ -2962,17 +3676,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..200,j=0..40,_
 --R
 --R   (7)  ThreeDimensionalViewport: "Manicotti"
 --R                                               Type: ThreeDimensionalViewport
---E 305
+--E 380
 
---S 306 of 601
+--S 381 of 676
 zoom(v3d,1.5,1.5,1.5)
 --R                                                                   Type: Void
---E 306
+--E 381
 
---S 307 of 601
+--S 382 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 307
+--E 382
 
 \end{chunk}
 
@@ -2985,23 +3699,23 @@ beans, and with salty seasonings such as anchovies, capers, or olives.
 \begin{chunk}{*}
 )clear all
 
---S 308 of 601
+--S 383 of 676
 X(i,j) == 2.0*j/3.0*cos(i*%pi/75)+0.3*cos(2*i*%pi/15)
 --R                                                                   Type: Void
---E 308
+--E 383
 
---S 309 of 601
+--S 384 of 676
 Y(i,j) == 10*sin(i*%pi/75)
 --R                                                                   Type: Void
---E 309
+--E 384
 
---S 310 of 601
+--S 385 of 676
 Z(i,j) == 0.1*cos(i*%pi/3)+5*(0.5+0.5*cos(2*i*%pi/75))^4*cos(j*%pi/30)^2 + _
           1.5*(0.5+0.5*cos(2*i*%pi/75))^5*sin(j*%pi/30)^10
 --R                                                                   Type: Void
---E 310
+--E 385
 
---S 311 of 601
+--S 386 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..15,_
            style=="smooth",title=="Orecchiette")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -3020,12 +3734,12 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..15,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Orecchiette"
 --R                                               Type: ThreeDimensionalViewport
---E 311
+--E 386
 
---S 312 of 601
+--S 387 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 312
+--E 387
 
 \end{chunk}
 
@@ -3038,22 +3752,22 @@ southern Italian region of Campania.
 \begin{chunk}{*}
 )clear all
 
---S 313 of 601
+--S 388 of 676
 X(i,j) == (j+60.0)/60.0*cos(i*%pi/75)+0.5*cos(j*%pi/60)+cos((i+j)*%pi/75)
 --R                                                                   Type: Void
---E 313
+--E 388
 
---S 314 of 601
+--S 389 of 676
 Y(i,j) == 2.6*sin(i*%pi/75)+0.3*sin(j*%pi/60)
 --R                                                                   Type: Void
---E 314
+--E 389
 
---S 315 of 601
+--S 390 of 676
 Z(i,j) == 7.0*j/30.0
 --R                                                                   Type: Void
---E 315
+--E 390
 
---S 316 of 601
+--S 391 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..30,_
            style=="smooth",title=="Paccheri")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -3072,12 +3786,12 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..30,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Paccheri"
 --R                                               Type: ThreeDimensionalViewport
---E 316
+--E 391
 
---S 317 of 601
+--S 392 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 317
+--E 392
 
 \end{chunk}
 
@@ -3090,44 +3804,44 @@ Torre Alfina, central Italy.
 \begin{chunk}{*}
 )clear all
 
---S 318 of 601
+--S 393 of 676
 A(i,j) == cos(i*%pi/80)+(3.0*j)/50.0*sin(21*i*%pi/800)
 --R                                                                   Type: Void
---E 318
+--E 393
 
---S 319 of 601
+--S 394 of 676
 B(i,j) == sin(i*%pi/3200)^0.1*sin(i*%pi/80)
 --R                                                                   Type: Void
---E 319
+--E 394
 
---S 320 of 601
+--S 395 of 676
 C(i,j) == 3.0*j/50.0+0.5*sin(i*%pi/200)
 --R                                                                   Type: Void
---E 320
+--E 395
 
---S 321 of 601
+--S 396 of 676
 D(i,j) == cos(i*%pi/80)+3.0*j/50.0*sin(21*i*%pi/800)
 --R                                                                   Type: Void
---E 321
+--E 396
 
---S 322 of 601
+--S 397 of 676
 E(i,j) == sin(i*%pi/3200)^0.5*sin(i*%pi/80)
 --R                                                                   Type: Void
---E 322
+--E 397
 
---S 323 of 601
+--S 398 of 676
 F(i,j) == 3.0*j/50.0+0.5*sin(i*%pi/200)
 --R                                                                   Type: Void
---E 323
+--E 398
 
---S 324 of 601
+--S 399 of 676
 vsp:=createThreeSpace()
 --R
 --R   (7)  3-Space with 0 components
 --R                                                 Type: ThreeSpace DoubleFloat
---E 324
+--E 399
 
---S 325 of 601
+--S 400 of 676
 makeObject(surface(A(i,j),B(i,j),C(i,j)),i=0..800,j=0..5,space==vsp)
 --R   Compiling function A with type (Variable i,Variable j) -> Expression
 --R      Float 
@@ -3144,9 +3858,9 @@ makeObject(surface(A(i,j),B(i,j),C(i,j)),i=0..800,j=0..5,space==vsp)
 --R
 --R   (8)  3-Space with 1 component
 --R                                                 Type: ThreeSpace DoubleFloat
---E 325
+--E 400
 
---S 326 of 601
+--S 401 of 676
 makeObject(surface(0.6*D(i,j),0.8*E(i,j),0.9*F(i,j)),i=0..800,j=0..5,_
            space==vsp)
 --R   Compiling function D with type (Variable i,Variable j) -> Expression
@@ -3164,20 +3878,20 @@ makeObject(surface(0.6*D(i,j),0.8*E(i,j),0.9*F(i,j)),i=0..800,j=0..5,_
 --R
 --R   (9)  3-Space with 2 components
 --R                                                 Type: ThreeSpace DoubleFloat
---E 326
+--E 401
 
---S 327 of 601
+--S 402 of 676
 vp:=makeViewport3D(vsp,style=="smooth",title=="Pappardelle")
 --R   Transmitting data...
 --R
 --R   (10)  ThreeDimensionalViewport: "Pappardelle"
 --R                                               Type: ThreeDimensionalViewport
---E 327
+--E 402
 
---S 328 of 601
+--S 403 of 676
 close(vp)
 --R                                                                   Type: Void
---E 328
+--E 403
 
 \end{chunk}
 
@@ -3190,31 +3904,31 @@ it contains.
 \begin{chunk}{*}
 )clear all
 
---S 329 of 601
+--S 404 of 676
 X(i,j) == _
   if (i < 85) _
    then 4*sin(i*%pi/85)^2+0.1*sin(6*i*%pi/17) _
    else -4*sin((i-85)*%pi/85)^2+0.1*sin(6*(i-85)*%pi/17)
 --R                                                                   Type: Void
---E 329
+--E 404
 
---S 330 of 601
+--S 405 of 676
 Y(i,j) == _
   if (i < 85) _
    then 4*cos(i*%pi/85)+0.1*cos(6*i*%pi/17) _
    else -4*cos((i-85)*%pi/85)+0.1*cos(6*(i-85)*%pi/17)
 --R                                                                   Type: Void
---E 330
+--E 405
 
---S 331 of 601
+--S 406 of 676
 Z(i,j) == _
   if (i < 85) _
    then 7*cos(i*%pi/85)+15*sin((j-20)*%pi/40) _
    else -7*cos((i-85)*%pi/85)+15*sin((j-20)*%pi/40)
 --R                                                                   Type: Void
---E 331
+--E 406
 
---S 332 of 601
+--S 407 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..170,j=0..40,_
            style=="smooth",title=="Penne Rigate")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -3233,12 +3947,12 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..170,j=0..40,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Penne Rigate"
 --R                                               Type: ThreeDimensionalViewport
---E 332
+--E 407
 
---S 333 of 601
+--S 408 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 333
+--E 408
 
 \end{chunk}
 
@@ -3249,31 +3963,31 @@ the grooves, {\sl pennoni} (large quills) require a more oily sauce
 \begin{chunk}{*}
 )clear all
 
---S 334 of 601
+--S 409 of 676
 X(i,j) == _ 
   if (i < 100) _
    then 7*sin(i*%pi/100)^2 _
    else -7*sin((i-100)*%pi/100)^2
 --R                                                                   Type: Void
---E 334
+--E 409
 
---S 335 of 601
+--S 410 of 676
 Y(i,j) == _
   if (i < 100) _
    then 8*cos(i*%pi/100) _
    else -8*cos((i-100)*%pi/100)
 --R                                                                   Type: Void
---E 335
+--E 410
 
---S 336 of 601
+--S 411 of 676
 Z(i,j) == _
   if (i < 100) _
    then 12*cos(i*%pi/100)+15*sin((j-20)*%pi/40) _
    else -12*cos((i-100)*%pi/100)+15*sin((j-20)*%pi/40)
 --R                                                                   Type: Void
---E 336
+--E 411
 
---S 337 of 601
+--S 412 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..200,j=0..40,_
            style=="smooth",title=="Pennoni Lisci")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -3292,12 +4006,12 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..200,j=0..40,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Pennoni Lisci"
 --R                                               Type: ThreeDimensionalViewport
---E 337
+--E 412
 
---S 338 of 601
+--S 413 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 338
+--E 413
 
 \end{chunk}
 
@@ -3308,46 +4022,46 @@ ridged version of {\sl pennoni}, and can be stuffed and cooked.
 \begin{chunk}{*}
 )clear all
 
---S 339 of 601
+--S 414 of 676
 A(i,j) == -7*sin((i-100)*%pi/100)^2+0.2*sin((3*i-300)*%pi/10)
 --R                                                                   Type: Void
---E 339
+--E 414
 
---S 340 of 601
+--S 415 of 676
 B(i,j) == -8*cos((i-100)*%pi/100)+0.2*cos((3*i-300)*%pi/10)
 --R                                                                   Type: Void
---E 340
+--E 415
 
---S 341 of 601
+--S 416 of 676
 C(i,j) == -12*cos((i-100)*%pi/100)+15*sin((j-20)*%pi/40)
 --R                                                                   Type: Void
---E 341
+--E 416
 
---S 342 of 601
+--S 417 of 676
 X(i,j) == _
   if (i < 100) _
    then 7*sin(i*%pi/100)^2+0.15*sin(3*i*%pi/10) _
    else A(i,j)
 --R                                                                   Type: Void
---E 342
+--E 417
 
---S 343 of 601
+--S 418 of 676
 Y(i,j) == _
   if (i < 100) _
    then 8*cos(i*%pi/100)+0.15*cos(3*i*%pi/10) _
    else B(i,j)
 --R                                                                   Type: Void
---E 343
+--E 418
 
---S 344 of 601
+--S 419 of 676
 Z(i,j) == _
   if (i < 100) _
    then 12*cos(i*%pi/100)+15*sin((j-20)*%pi/40) _
    else C(i,j)
 --R                                                                   Type: Void
---E 344
+--E 419
 
---S 345 of 601
+--S 420 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..200,j=0..40,_
            style=="smooth",title=="Pennoni Rigati")
 --R   Compiling function A with type (Variable i,Variable j) -> Expression
@@ -3372,12 +4086,12 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..200,j=0..40,_
 --R
 --R   (7)  ThreeDimensionalViewport: "Pennoni Rigati"
 --R                                               Type: ThreeDimensionalViewport
---E 345
+--E 420
 
---S 346 of 601
+--S 421 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 346
+--E 421
 
 \end{chunk}
 
@@ -3389,22 +4103,22 @@ or perhaps in a salad.
 \begin{chunk}{*}
 )clear all
 
---S 347 of 601
+--S 422 of 676
 X(i,j) == 1.4*sin(j*%pi/80)^1.2*cos(i*%pi/40)
 --R                                                                   Type: Void
---E 347
+--E 422
 
---S 348 of 601
+--S 423 of 676
 Y(i,j) == 2.5*sin(j*%pi/80)^1.2*sin(i*%pi/40)
 --R                                                                   Type: Void
---E 348
+--E 423
 
---S 349 of 601
+--S 424 of 676
 Z(i,j) == 8*cos(j*%pi/80)
 --R                                                                   Type: Void
---E 349
+--E 424
 
---S 350 of 601
+--S 425 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..80,j=0..80,_
            style=="smooth",title=="Puntalette")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -3423,12 +4137,12 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..80,j=0..80,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Puntalette"
 --R                                               Type: ThreeDimensionalViewport
---E 350
+--E 425
 
---S 351 of 601
+--S 426 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 351
+--E 426
 
 \end{chunk}
 
@@ -3441,24 +4155,24 @@ authentic form and consistency.
 \begin{chunk}{*}
 )clear all
 
---S 352 of 601
+--S 427 of 676
 X(i,j) == 2*cos(i*%pi/250)*(abs(sin(3*i*%pi/250)))^20 + _
           (0.6+0.9*sin(j*%pi/50))*cos(i*%pi/250)+0.2*cos(4*j*%pi/25)
 --R                                                                   Type: Void
---E 352
+--E 427
 
---S 353 of 601
+--S 428 of 676
 Y(i,j) == 2*sin(i*%pi/250)*(abs(sin(3*i*%pi/250)))^20 + _
           (0.6+0.9*sin(j*%pi/50))*sin(i*%pi/250)+1.5*sin(j*%pi/50)
 --R                                                                   Type: Void
---E 353
+--E 428
 
---S 354 of 601
+--S 429 of 676
 Z(i,j) == 3.0*j/10.0
 --R                                                                   Type: Void
---E 354
+--E 429
 
---S 355 of 601
+--S 430 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..500,j=0..50,_
            style=="smooth",title=="Quadrefiore")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -3477,17 +4191,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..500,j=0..50,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Quadrefiore"
 --R                                               Type: ThreeDimensionalViewport
---E 355
+--E 430
 
---S 356 of 601
+--S 431 of 676
 zoom(v3d,2.0,2.0,2.0)
 --R                                                                   Type: Void
---E 356
+--E 431
 
---S 357 of 601
+--S 432 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 357
+--E 432
 
 \end{chunk}
 
@@ -3501,22 +4215,22 @@ short time.
 \begin{chunk}{*}
 )clear all
 
---S 358 of 601
+--S 433 of 676
 X(i,j) == 3.0*i/14.0
 --R                                                                   Type: Void
---E 358
+--E 433
 
---S 359 of 601
+--S 434 of 676
 Y(i,j) == 3.0*j/14.0
 --R                                                                   Type: Void
---E 359
+--E 434
 
---S 360 of 601
+--S 435 of 676
 Z(i,j) == 0.0
 --R                                                                   Type: Void
---E 360
+--E 435
 
---S 361 of 601
+--S 436 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..70,j=0..70,_
            style=="smooth",title=="Quadretti")
 --R   Compiling function X with type (Variable i,Variable j) -> Polynomial
@@ -3534,12 +4248,12 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..70,j=0..70,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Quadretti"
 --R                                               Type: ThreeDimensionalViewport
---E 361
+--E 436
 
---S 362 of 601
+--S 437 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 362
+--E 437
 
 \end{chunk}
 
@@ -3550,54 +4264,54 @@ diced watermelon or pomegranate seeds can create a light-tasking snack.
 \begin{chunk}{*}
 )clear all
 
---S 363 of 601
+--S 438 of 676
 A(i)    == sin(i*%pi/2000)^0.5
 --R                                                                   Type: Void
---E 363
+--E 438
 
---S 364 of 601
+--S 439 of 676
 X0(i,j) == 2*cos((i+1500)*%pi/1500)+0.65*cos((i+750)*%pi/1500) + _
            2*(abs(cos(i*%pi/300)))^100*cos(i*%pi/1500)
 --R                                                                   Type: Void
---E 364
+--E 439
 
---S 365 of 601
+--S 440 of 676
 Y0(i,j) == 2.4*sin((i+1500)*%pi/1500)+0.1*sin(i*%pi/1500) + _
            2.3*(abs(sin(i*%pi/300)))^100*sin(i*%pi/1500)
 --R                                                                   Type: Void
---E 365
+--E 440
 
---S 366 of 601
+--S 441 of 676
 X1(i,j) == _
   if (i <= 2000) _
    then 2.1*cos((2*A(i)+1)*%pi)+0.65*cos((2*A(i)+0.5)*%pi)+_
         2.5*sin((A(i)+1.83)*%pi)^500 _
    else -2.1
 --R                                                                   Type: Void
---E 366
+--E 441
 
---S 367 of 601
+--S 442 of 676
 Y1(i,j) == _
   if (i <= 2000) _
    then 2.5*sin((2*A(i)+1)*%pi)+0.1*sin(A(i)*2*%pi)+_
         3*sin((A(i)+1.83)*%pi)^500 _
    else 0.0
 --R                                                                   Type: Void
---E 367
+--E 442
 
---S 368 of 601
+--S 443 of 676
 Z(i,j) == j/4.0
 --R                                                                   Type: Void
---E 368
+--E 443
 
---S 369 of 601
+--S 444 of 676
 vsp:=createThreeSpace()
 --R
 --R   (7)  3-Space with 0 components
 --R                                                 Type: ThreeSpace DoubleFloat
---E 369
+--E 444
 
---S 370 of 601
+--S 445 of 676
 makeObject(surface(X0(i,j),Y0(i,j),Z(i,j)),i=0..3000,j=0..4,space==vsp)
 --R   Compiling function X0 with type (Variable i,Variable j) -> 
 --R      Expression Float 
@@ -3614,9 +4328,9 @@ makeObject(surface(X0(i,j),Y0(i,j),Z(i,j)),i=0..3000,j=0..4,space==vsp)
 --R
 --R   (8)  3-Space with 1 component
 --R                                                 Type: ThreeSpace DoubleFloat
---E 370
+--E 445
 
---S 371 of 601
+--S 446 of 676
 makeObject(surface(X0(i,j),Y0(i,j),Z(i,j)),i=0..3000,j=0..4,space==vsp)
 --I   Compiling function %JX with type (DoubleFloat,DoubleFloat) -> 
 --R      DoubleFloat 
@@ -3627,20 +4341,20 @@ makeObject(surface(X0(i,j),Y0(i,j),Z(i,j)),i=0..3000,j=0..4,space==vsp)
 --R
 --R   (9)  3-Space with 2 components
 --R                                                 Type: ThreeSpace DoubleFloat
---E 371
+--E 446
 
---S 372 of 601
+--S 447 of 676
 vp:=makeViewport3D(vsp,style=="smooth",title=="Racchette")
 --R   Transmitting data...
 --R
 --R   (10)  ThreeDimensionalViewport: "Racchette"
 --R                                               Type: ThreeDimensionalViewport
---E 372
+--E 447
 
---S 373 of 601
+--S 448 of 676
 close(vp)
 --R                                                                   Type: Void
---E 373
+--E 448
 
 \end{chunk}
 
@@ -3653,22 +4367,22 @@ is often accompanied by a lamb-, veal-, rabbit-, or pork-based {\sl ragu}.
 \begin{chunk}{*}
 )clear all
 
---S 374 of 601
+--S 449 of 676
 X(i,j) == (1.5+3*(i/70.0)^5+4*sin(j*%pi/200)^50)*cos(4*i*%pi/175)
 --R                                                                   Type: Void
---E 374
+--E 449
 
---S 375 of 601
+--S 450 of 676
 Y(i,j) == (1.5+3*(i/70.0)^5+4*sin(j*%pi/200)^50)*sin(4*i*%pi/175)
 --R                                                                   Type: Void
---E 375
+--E 450
 
---S 376 of 601
+--S 451 of 676
 Z(i,j) == j/50.0+cos(3*i*%pi/14)*sin(j*%pi/1000)
 --R                                                                   Type: Void
---E 376
+--E 451
 
---S 377 of 601
+--S 452 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..70,j=0..1000,_
            style=="smooth",title=="Radiatori")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -3687,17 +4401,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..70,j=0..1000,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Radiatori"
 --R                                               Type: ThreeDimensionalViewport
---E 377
+--E 452
 
---S 378 of 601
+--S 453 of 676
 zoom(v3d,2.0,2.0,2.0)
 --R                                                                   Type: Void
---E 378
+--E 453
 
---S 379 of 601
+--S 454 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 379
+--E 454
 
 \end{chunk}
 
@@ -3711,19 +4425,19 @@ for turnip.
 \begin{chunk}{*}
 )clear all
 
---S 380 of 601
+--S 455 of 676
 X(i,j) == i/2.0+0.4*sin((j+2.5)*%pi/5) * _
           (sin(i*%pi/200)^0.2 - cos(i*%pi/200)^0.2)
 --R                                                                   Type: Void
---E 380
+--E 455
 
---S 381 of 601
+--S 456 of 676
 Y(i,j) == j/2.0+0.4*sin((11*i+25)*%pi/50) * _
           (sin(j*%pi/200)^0.2 - cos(j*%pi/200)^0.2)
 --R                                                                   Type: Void
---E 381
+--E 456
 
---S 382 of 601
+--S 457 of 676
 Z(i,j) == _
   if (((10 < j) and (j < 90)) or ((10 < i) and (i < 90))) _
    then 10*sin((i-10)*%pi/80)^0.6*sin((j-10)*%pi/80)^0.6 _
@@ -3731,9 +4445,9 @@ Z(i,j) == _
          then 0.0 _
          else 0.0
 --R                                                                   Type: Void
---E 382
+--E 457
 
---S 383 of 601
+--S 458 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..99,j=0..99,_
            style=="smooth",title=="Ravioli Quadrati")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -3752,12 +4466,12 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..99,j=0..99,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Ravioli Quadrati"
 --R                                               Type: ThreeDimensionalViewport
---E 383
+--E 458
 
---S 384 of 601
+--S 459 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 384
+--E 459
 
 \end{chunk}
 
@@ -3770,27 +4484,27 @@ centres of mushrooms, spinach, or even nettle.
 \begin{chunk}{*}
 )clear all
 
---S 385 of 601
+--S 460 of 676
 X(i,j) == 5.0*i/8.0+0.5*sin((j+2)*%pi/4) * _
           (sin(i*%pi/160)^0.2-cos(i*%pi/160)^0.2)
 --R                                                                   Type: Void
---E 385
+--E 460
 
---S 386 of 601
+--S 461 of 676
 Y(i,j) == 5.0*j/8.0+0.5*sin((i+2)*%pi/4) * _
           (sin(j*%pi/160)^0.2-cos(j*%pi/160)^0.2)
 --R                                                                   Type: Void
---E 386
+--E 461
 
---S 387 of 601
+--S 462 of 676
 Z(i,j) == _
   if (600 >= ((i-40)^2+(j-40)^2)) _
    then 0.5*sqrt(600 - (i-40)^2-(j-40)^2) _
    else 0.0
 --R                                                                   Type: Void
---E 387
+--E 462
 
---S 388 of 601
+--S 463 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..80,j=0..80,_
            style=="smooth",title=="Ravioli Tondi")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -3809,12 +4523,12 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..80,j=0..80,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Ravioli Tondi"
 --R                                               Type: ThreeDimensionalViewport
---E 388
+--E 463
 
---S 389 of 601
+--S 464 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 389
+--E 464
 
 \end{chunk}
 
@@ -3826,22 +4540,22 @@ large quantity of sauce.
 \begin{chunk}{*}
 )clear all
 
---S 390 of 601
+--S 465 of 676
 X(i,j) == (2+8*sin(i*%pi/100)+9*sin((11*j+100)*%pi/400)^2)*cos(4*i*%pi/125)
 --R                                                                   Type: Void
---E 390
+--E 465
 
---S 391 of 601
+--S 466 of 676
 Y(i,j) == (2+8*sin(i*%pi/100)+9*sin((11*j+100)*%pi/400)^2)*sin(4*i*%pi/125)
 --R                                                                   Type: Void
---E 391
+--E 466
 
---S 392 of 601
+--S 467 of 676
 Z(i,j) == j/4.0
 --R                                                                   Type: Void
---E 392
+--E 467
 
---S 393 of 601
+--S 468 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..50,j=0..200,_
            style=="smooth",title=="Riccioli")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -3860,17 +4574,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..50,j=0..200,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Riccioli"
 --R                                               Type: ThreeDimensionalViewport
---E 393
+--E 468
 
---S 394 of 601
+--S 469 of 676
 zoom(v3d,2.0,2.0,2.0)
 --R                                                                   Type: Void
---E 394
+--E 469
 
---S 395 of 601
+--S 470 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 395
+--E 470
 
 \end{chunk}
 
@@ -3884,23 +4598,23 @@ usually served in broth.
 \begin{chunk}{*}
 )clear all
 
---S 396 of 601
+--S 471 of 676
 X(i,j) == 1.5*cos(i*%pi/20)*(1+0.5*sin(j*%pi/25)*sin(i*%pi/40) + _
           0.43*sin((j+18.75)*%pi/25)*cos(i*%pi/40))+2*cos(j*%pi/50)
 --R                                                                   Type: Void
---E 396
+--E 471
 
---S 397 of 601
+--S 472 of 676
 Y(i,j) == 1.5*sin(i*%pi/20)^3+cos(j*%pi/25)
 --R                                                                   Type: Void
---E 397
+--E 472
 
---S 398 of 601
+--S 473 of 676
 Z(i,j) == sin(j*%pi/100)+20*cos(j*%pi/200)^2
 --R                                                                   Type: Void
---E 398
+--E 473
 
---S 399 of 601
+--S 474 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..20,j=0..100,_
            style=="smooth",title=="Riccioli al Cinque Sapori")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -3919,17 +4633,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..20,j=0..100,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Riccioli al Cinque Sapori"
 --R                                               Type: ThreeDimensionalViewport
---E 399
+--E 474
 
---S 400 of 601
+--S 475 of 676
 zoom(v3d,2.0,2.0,2.0)
 --R                                                                   Type: Void
---E 400
+--E 475
 
---S 401 of 601
+--S 476 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 401
+--E 476
 
 \end{chunk}
 
@@ -3942,24 +4656,24 @@ and black pepper.
 \begin{chunk}{*}
 )clear all
 
---S 402 of 601
+--S 477 of 676
 X(i,j) == 0.2*sin((7*i+15)*%pi/30)+2*cos((j+60)*%pi/120) + _
           (7+(60-j)/60.0*sin(i*%pi/240))*cos(i*%pi/120)
 --R                                                                   Type: Void
---E 402
+--E 477
 
---S 403 of 601
+--S 478 of 676
 Y(i,j) == 0.2*sin(7*i*%pi/30)+(8+0.1*(60-j)/60+j/30*cos(i*%pi/240)) * _
           sin(i*%pi/120)
 --R                                                                   Type: Void
---E 403
+--E 478
 
---S 404 of 601
+--S 479 of 676
 Z(i,j) == j/2.0
 --R                                                                   Type: Void
---E 404
+--E 479
 
---S 405 of 601
+--S 480 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..240,j=0..60,_
            style=="smooth",title=="Rigatoni")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -3978,12 +4692,12 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..240,j=0..60,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Rigatoni"
 --R                                               Type: ThreeDimensionalViewport
---E 405
+--E 480
 
---S 406 of 601
+--S 481 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 406
+--E 481
 
 \end{chunk}
 
@@ -3995,7 +4709,7 @@ smaller and sheared on the diagonal. Generally served with sauce and
 \begin{chunk}{*}
 )clear all
 
---S 407 of 601
+--S 482 of 676
 X(i,j) == _
   if ((13 <= i) and (i <= 37)) _
     then i/20.0+j/25.0-1/20.0 _
@@ -4003,14 +4717,14 @@ X(i,j) == _
           then 3.0*i/65.0+j/25.0 _
           else 6/65.0+3.0*i/65.0+j/25.0
 --R                                                                   Type: Void
---E 407
+--E 482
 
---S 408 of 601
+--S 483 of 676
 Y(i,j) == j/25.0
 --R                                                                   Type: Void
---E 408
+--E 483
 
---S 409 of 601
+--S 484 of 676
 Z(i,j) == _
   if ((13 <= i) and (i <= 37)) _
    then 0.0 _
@@ -4018,9 +4732,9 @@ Z(i,j) == _
          then 0.2*((13.0-i)/13.0)*cos((2.0*j+12.5)*%pi/25) _
          else (i-37.0)/65.0*cos((2.0*j+37.5)*%pi/25)
 --R                                                                   Type: Void
---E 409
+--E 484
 
---S 410 of 601
+--S 485 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..50,j=0..50,_
            style=="smooth",title=="Rombi")
 --R   Compiling function X with type (Variable i,Variable j) -> Polynomial
@@ -4039,17 +4753,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..50,j=0..50,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Rombi"
 --R                                               Type: ThreeDimensionalViewport
---E 410
+--E 485
 
---S 411 of 601
+--S 486 of 676
 zoom(v3d,2.0,2.0,2.0)
 --R                                                                   Type: Void
---E 411
+--E 486
 
---S 412 of 601
+--S 487 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 412
+--E 487
 
 \end{chunk}
 
@@ -4062,45 +4776,45 @@ salads or cooked in soups.
 \begin{chunk}{*}
 )clear all
 
---S 413 of 601
+--S 488 of 676
 X0(i,j) == 0.5*cos(i*%pi/1000)+1.5*(abs(sin(3*i*%pi/1000)))^50*cos(i*%pi/1000)
 --R                                                                   Type: Void
---E 413
+--E 488
 
---S 414 of 601
+--S 489 of 676
 Y0(i,j) == 0.5*sin(i*%pi/1000)+1.5*(abs(sin(3*i*%pi/1000)))^50*sin(i*%pi/1000)
 --R                                                                   Type: Void
---E 414
+--E 489
 
---S 415 of 601
+--S 490 of 676
 X1(i,j) == _
   if (i <= 666) _
    then 2*cos(3*i*%pi/1000)+0.03*cos(93*i*%pi/1000) _
    else 2.03
 --R                                                                   Type: Void
---E 415
+--E 490
 
---S 416 of 601
+--S 491 of 676
 Y1(i,j) == _
   if (i <= 666) _
    then 2.05*sin(3*i*%pi/1000)+0.03*sin(93*i*%pi/1000) _
    else 0.0
 --R                                                                   Type: Void
---E 416
+--E 491
 
---S 417 of 601
+--S 492 of 676
 Z(i,j) == j/5.0
 --R                                                                   Type: Void
---E 417
+--E 492
 
---S 418 of 601
+--S 493 of 676
 vsp:=createThreeSpace()
 --R
 --R   (6)  3-Space with 0 components
 --R                                                 Type: ThreeSpace DoubleFloat
---E 418
+--E 493
 
---S 419 of 601
+--S 494 of 676
 makeObject(surface(X0(i,j),Y0(i,j),Z(i,j)),i=0..2000,j=0..5,space==vsp)
 --R   Compiling function X0 with type (Variable i,Variable j) -> 
 --R      Expression Float 
@@ -4117,9 +4831,9 @@ makeObject(surface(X0(i,j),Y0(i,j),Z(i,j)),i=0..2000,j=0..5,space==vsp)
 --R
 --R   (7)  3-Space with 1 component
 --R                                                 Type: ThreeSpace DoubleFloat
---E 419
+--E 494
 
---S 420 of 601
+--S 495 of 676
 makeObject(surface(X0(i,j),Y0(i,j),Z(i,j)),i=0..2000,j=0..5,space==vsp)
 --I   Compiling function %LV with type (DoubleFloat,DoubleFloat) -> 
 --R      DoubleFloat 
@@ -4130,20 +4844,20 @@ makeObject(surface(X0(i,j),Y0(i,j),Z(i,j)),i=0..2000,j=0..5,space==vsp)
 --R
 --R   (8)  3-Space with 2 components
 --R                                                 Type: ThreeSpace DoubleFloat
---E 420
+--E 495
 
---S 421 of 601
+--S 496 of 676
 vp:=makeViewport3D(vsp,style=="smooth",title=="Rotelle")
 --R   Transmitting data...
 --R
 --R   (9)  ThreeDimensionalViewport: "Rotelle"
 --R                                               Type: ThreeDimensionalViewport
---E 421
+--E 496
 
---S 422 of 601
+--S 497 of 676
 close(vp)
 --R                                                                   Type: Void
---E 422
+--E 497
 
 \end{chunk}
 
@@ -4156,24 +4870,24 @@ with ricotta, meat, or steamed greens.
 \begin{chunk}{*}
 )clear all
 
---S 423 of 601
+--S 498 of 676
 X(i,j) == cos(i*%pi/75)*(sin(j*%pi/50)+1.3*sin(j*%pi/200) + _
           3*j/1000.0*cos((i+25)*%pi/25))
 --R                                                                   Type: Void
---E 423
+--E 498
 
---S 424 of 601
+--S 499 of 676
 Y(i,j) == sin(i*%pi/75)*(sin(j*%pi/50)+1.3*sin(j*%pi/200) + _
           0.7*(j/100.0)^2*sin(i*%pi/15))
 --R                                                                   Type: Void
---E 424
+--E 499
 
---S 425 of 601
+--S 500 of 676
 Z(i,j) == 2*(1-(abs(cos(j*%pi/200)))^5+(j/100.0)^4.5)
 --R                                                                   Type: Void
---E 425
+--E 500
 
---S 426 of 601
+--S 501 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..100,_
            style=="smooth",title=="Saccottini")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -4192,12 +4906,12 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..100,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Saccottini"
 --R                                               Type: ThreeDimensionalViewport
---E 426
+--E 501
 
---S 427 of 601
+--S 502 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 427
+--E 502
 
 \end{chunk}
 
@@ -4210,32 +4924,32 @@ wild asparagus.
 \begin{chunk}{*}
 )clear all
 
---S 428 of 601
+--S 503 of 676
 A(i) == 0.5*sin((i+1.5)*%pi/3)
 --R                                                                   Type: Void
---E 428
+--E 503
 
---S 429 of 601
+--S 504 of 676
 B(i) == 0.05*sin((9*i+12.5)*%pi/25)
 --R                                                                   Type: Void
---E 429
+--E 504
 
---S 430 of 601
+--S 505 of 676
 X(i,j) == i/10.0+A(j)*(cos(i*%pi/120)^100-sin(i*%pi/200)^100)
 --R                                                                   Type: Void
---E 430
+--E 505
 
---S 431 of 601
+--S 506 of 676
 Y(i,j) == j/20.0+B(i)*(cos(j*%pi/120)^100-sin(j*%pi/200)^100)
 --R                                                                   Type: Void
---E 431
+--E 506
 
---S 432 of 601
+--S 507 of 676
 Z(i,j) == 0.0
 --R                                                                   Type: Void
---E 432
+--E 507
 
---S 433 of 601
+--S 508 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..100,j=0..60,_
            style=="smooth",title=="Sagnarelli")
 --R   Compiling function A with type Variable j -> Expression Float 
@@ -4255,12 +4969,12 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..100,j=0..60,_
 --R
 --R   (6)  ThreeDimensionalViewport: "Sagnarelli"
 --R                                               Type: ThreeDimensionalViewport
---E 433
+--E 508
 
---S 434 of 601
+--S 509 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 434
+--E 509
 
 \end{chunk}
 
@@ -4274,41 +4988,41 @@ a traditional {\sl ragu}.
 \begin{chunk}{*}
 )clear all
 
---S 435 of 601
+--S 510 of 676
 X0(i,j) == (1-0.2*sin(3*j*%pi/20))*cos((i+10)*%pi/20) + _
            2*sin((i-100)*%pi/200)+(3*i)/200.0*sin(i*%pi/400)^200
 --R                                                                   Type: Void
---E 435
+--E 510
 
---S 436 of 601
+--S 511 of 676
 Y0(i,j) == (1-0.2*sin(3*j*%pi/20))*sin((i+10)*%pi/20)+sin((i-50)/200*%pi)
 --R                                                                   Type: Void
---E 436
+--E 511
 
---S 437 of 601
+--S 512 of 676
 X1(i,j) == -3+(1-0.1*sin(3*j*%pi/20))*sin((3*i-10)*%pi/50) + _
            cos(i*%pi/200)+3*i/200.0*sin(i*%pi/400)^5
 --R                                                                   Type: Void
---E 437
+--E 512
 
---S 438 of 601
+--S 513 of 676
 Y1(i,j) == -5+(1-01.*sin(3*j*%pi/20))*cos((3*i+10)*%pi/50)+2*sin(i*%pi/200)
 --R                                                                   Type: Void
---E 438
+--E 513
 
---S 439 of 601
+--S 514 of 676
 Z(i,j) == i/4.0+7/2.0*(1+cos(j*%pi/20))
 --R                                                                   Type: Void
---E 439
+--E 514
 
---S 440 of 601
+--S 515 of 676
 vsp:=createThreeSpace()
 --R
 --R   (6)  3-Space with 0 components
 --R                                                 Type: ThreeSpace DoubleFloat
---E 440
+--E 515
 
---S 441 of 601
+--S 516 of 676
 makeObject(surface(X0(i,j),Y0(i,j),Z(i,j)),i=0..200,j=0..20,space==vsp)
 --R   Compiling function X0 with type (Variable i,Variable j) -> 
 --R      Expression Float 
@@ -4325,9 +5039,9 @@ makeObject(surface(X0(i,j),Y0(i,j),Z(i,j)),i=0..200,j=0..20,space==vsp)
 --R
 --R   (7)  3-Space with 1 component
 --R                                                 Type: ThreeSpace DoubleFloat
---E 441
+--E 516
 
---S 442 of 601
+--S 517 of 676
 makeObject(surface(X1(i,j),Y1(i,j),Z(i,j)),i=0..200,j=0..20,space==vsp)
 --R   Compiling function X1 with type (Variable i,Variable j) -> 
 --R      Expression Float 
@@ -4342,25 +5056,25 @@ makeObject(surface(X1(i,j),Y1(i,j),Z(i,j)),i=0..200,j=0..20,space==vsp)
 --R
 --R   (8)  3-Space with 2 components
 --R                                                 Type: ThreeSpace DoubleFloat
---E 442
+--E 517
 
---S 443 of 601
+--S 518 of 676
 vp:=makeViewport3D(vsp,style=="smooth",title=="Sagne Incannulate")
 --R   Transmitting data...
 --R
 --R   (9)  ThreeDimensionalViewport: "Sagne Incannulate"
 --R                                               Type: ThreeDimensionalViewport
---E 443
+--E 518
 
---S 444 of 601
+--S 519 of 676
 zoom(vp,3.0,3.0,3.0)
 --R                                                                   Type: Void
---E 444
+--E 519
 
---S 445 of 601
+--S 520 of 676
 close(vp)
 --R                                                                   Type: Void
---E 445
+--E 520
 
 \end{chunk}
 
@@ -4374,22 +5088,22 @@ golden color, {\sl Scialatielli} are best paired with seafood, or a
 \begin{chunk}{*}
 )clear all
 
---S 446 of 601
+--S 521 of 676
 X(i,j) == 0.1*cos(i*%pi/75)+0.1*cos((i+7.5)*%pi/75)^3+0.1*sin(j*%pi/50)
 --R                                                                   Type: Void
---E 446
+--E 521
 
---S 447 of 601
+--S 522 of 676
 Y(i,j) == 0.1*cos(i*%pi/75)+0.2*sin(i*%pi/75)^3+0.1*sin(j*%pi/50)
 --R                                                                   Type: Void
---E 447
+--E 522
 
---S 448 of 601
+--S 523 of 676
 Z(i,j) == 3.0*j/50.0
 --R                                                                   Type: Void
---E 448
+--E 523
 
---S 449 of 601
+--S 524 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..50,_
            style=="smooth",title=="Scialatielli")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -4408,17 +5122,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..50,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Scialatielli"
 --R                                               Type: ThreeDimensionalViewport
---E 449
+--E 524
 
---S 450 of 601
+--S 525 of 676
 zoom(v3d,2.0,2.0,2.0)
 --R                                                                   Type: Void
---E 450
+--E 525
 
---S 451 of 601
+--S 526 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 451
+--E 526
 
 \end{chunk}
 
@@ -4430,22 +5144,22 @@ boiled and drained) with a light tomato sauce or a thick meaty {\sl ragu}.
 \begin{chunk}{*}
 )clear all
 
---S 452 of 601
+--S 527 of 676
 X(i,j) == (0.5+5*(j/100.0)^3+0.5*cos((i+37.5)*%pi/25))*cos(2*j*%pi/125)
 --R                                                                   Type: Void
---E 452
+--E 527
 
---S 453 of 601
+--S 528 of 676
 Y(i,j) == 0.6*sin((i+37.5)*%pi/25)
 --R                                                                   Type: Void
---E 453
+--E 528
 
---S 454 of 601
+--S 529 of 676
 Z(i,j) == (0.5+5*(j/100.0)^3+0.5*cos((i+37.5)*%pi/25))*sin(2*j*%pi/125)
 --R                                                                   Type: Void
---E 454
+--E 529
 
---S 455 of 601
+--S 530 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..25,j=0..100,_
            style=="smooth",title=="Spaccatelle")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -4464,17 +5178,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..25,j=0..100,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Spaccatelle"
 --R                                               Type: ThreeDimensionalViewport
---E 455
+--E 530
 
---S 456 of 601
+--S 531 of 676
 zoom(v3d,2.0,2.0,2.0)
 --R                                                                   Type: Void
---E 456
+--E 531
 
---S 457 of 601
+--S 532 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 457
+--E 532
 
 \end{chunk}
 
@@ -4487,22 +5201,22 @@ containing beef, tomato, cream, onions, and pancetta. More recently,
 \begin{chunk}{*}
 )clear all
 
---S 458 of 601
+--S 533 of 676
 X(i,j) == 0.1*cos(i*%pi/20)
 --R                                                                   Type: Void
---E 458
+--E 533
 
---S 459 of 601
+--S 534 of 676
 Y(i,j) == 0.1*sin(i*%pi/20)
 --R                                                                   Type: Void
---E 459
+--E 534
 
---S 460 of 601
+--S 535 of 676
 Z(i,j) == j/10.0
 --R                                                                   Type: Void
---E 460
+--E 535
 
---S 461 of 601
+--S 536 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..40,j=0..100,_
            style=="smooth",title=="Spaghetti")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -4521,17 +5235,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..40,j=0..100,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Spaghetti"
 --R                                               Type: ThreeDimensionalViewport
---E 461
+--E 536
 
---S 462 of 601
+--S 537 of 676
 zoom(v3d,3.0,3.0,3.0)
 --R                                                                   Type: Void
---E 462
+--E 537
 
---S 463 of 601
+--S 538 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 463
+--E 538
 
 \end{chunk}
 
@@ -4543,22 +5257,22 @@ served with chunky sauces as {\sl pastasciutta}, baked {\sl al forno}
 \begin{chunk}{*}
 )clear all
 
---S 464 of 601
+--S 539 of 676
 X(i,j) == (2.5+2*cos(i*%pi/50)+0.1*cos(i*%pi/5))*cos(j*%pi/30)
 --R                                                                   Type: Void
---E 464
+--E 539
 
---S 465 of 601
+--S 540 of 676
 Y(i,j) == (2.5+2*cos(i*%pi/50)+0.1*cos(i*%pi/5))*sin(j*%pi/30)
 --R                                                                   Type: Void
---E 465
+--E 540
 
---S 466 of 601
+--S 541 of 676
 Z(i,j) == (2.5+2*sin(i*%pi/50)+0.1*sin(i*%pi/5))+j/6.0
 --R                                                                   Type: Void
---E 466
+--E 541
 
---S 467 of 601
+--S 542 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..100,j=0..120,_
            style=="smooth",title=="Spiralli")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -4577,17 +5291,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..100,j=0..120,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Spiralli"
 --R                                               Type: ThreeDimensionalViewport
---E 467
+--E 542
 
---S 468 of 601
+--S 543 of 676
 zoom(v3d,2.5,2.5,2.5)
 --R                                                                   Type: Void
---E 468
+--E 543
 
---S 469 of 601
+--S 544 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 469
+--E 544
 
 \end{chunk}
 
@@ -4600,22 +5314,22 @@ mushrooms or peas.
 \begin{chunk}{*}
 )clear all
 
---S 470 of 601
+--S 545 of 676
 X(i,j) == (3.0+3.0*i/5.0)*cos(j*%pi/75)+i/10*cos((j+15)*%pi/15)
 --R                                                                   Type: Void
---E 470
+--E 545
 
---S 471 of 601
+--S 546 of 676
 Y(i,j) == (3.0+3.0*i/5.0)*sin(j*%pi/75)+i/10*sin(j*%pi/15)
 --R                                                                   Type: Void
---E 471
+--E 546
 
---S 472 of 601
+--S 547 of 676
 Z(i,j) == 0.0
 --R                                                                   Type: Void
---E 472
+--E 547
 
---S 473 of 601
+--S 548 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..25,j=0..150,_
            style=="smooth",title=="Stellette")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -4633,12 +5347,12 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..25,j=0..150,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Stellette"
 --R                                               Type: ThreeDimensionalViewport
---E 473
+--E 548
 
---S 474 of 601
+--S 549 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 474
+--E 549
 
 \end{chunk}
 
@@ -4650,30 +5364,30 @@ while larger {\sl pastina minute} can be served with thicker varieties.
 \begin{chunk}{*}
 )clear all
 
---S 475 of 601
+--S 550 of 676
 A(i,j) == 0.5*(abs(sin(2*i*%pi/125)))^3
 --R                                                                   Type: Void
---E 475
+--E 550
 
---S 476 of 601
+--S 551 of 676
 B(i,j) == 1-abs(sin((2*i-500)*%pi/125))
 --R                                                                   Type: Void
---E 476
+--E 551
 
---S 477 of 601
+--S 552 of 676
 C(i,j) == 1-0.5*(abs(sin(2*(i-375)*%pi/125)))^3
 --R                                                                   Type: Void
---E 477
+--E 552
 
---S 478 of 601
+--S 553 of 676
 X(i,j) == _
   if (i <= 250) _
    then cos(2*i*%pi/125) _
    else 1.7-cos((2*i-500)*%pi/125)
 --R                                                                   Type: Void
---E 478
+--E 553
 
---S 479 of 601
+--S 554 of 676
 Y(i,j) == _
   if (i <= 250) _
    then if (i <= 125) _
@@ -4683,14 +5397,14 @@ Y(i,j) == _
          then B(i,j) _
          else C(i,j)
 --R                                                                   Type: Void
---E 479
+--E 554
 
---S 480 of 601
+--S 555 of 676
 Z(i,j) == j/20.0
 --R                                                                   Type: Void
---E 480
+--E 555
 
---S 481 of 601
+--S 556 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..500,j=0..10,_
            style=="smooth",title=="Stortini")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -4715,17 +5429,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..500,j=0..10,_
 --R
 --R   (7)  ThreeDimensionalViewport: "Stortini"
 --R                                               Type: ThreeDimensionalViewport
---E 481
+--E 556
 
---S 482 of 601
+--S 557 of 676
 zoom(v3d,3.0,3.0,3.0)
 --R                                                                   Type: Void
---E 482
+--E 557
 
---S 483 of 601
+--S 558 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 483
+--E 558
 
 \end{chunk}
 
@@ -4738,40 +5452,40 @@ with Parmigiano-Reggiano.
 \begin{chunk}{*}
 )clear all
 
---S 484 of 601
+--S 559 of 676
 A(i,j) == 0.5*cos(j*%pi/40)+0.5*cos((j+76)*%pi/40) + _
           0.5*cos(j*%pi/30)+0.5*sin((2*i-j)*%pi/40)
 --R                                                                   Type: Void
---E 484
+--E 559
 
---S 485 of 601
+--S 560 of 676
 B(i,j) == 0.5*sin(j*%pi/40)+0.5*sin((j+76)*%pi/40) + _
           0.5*sin(j*%pi/30)+0.5*cos((2*i-j)*%pi/40)
 --R                                                                   Type: Void
---E 485
+--E 560
 
---S 486 of 601
+--S 561 of 676
 X(i,j) == _
   if (i <= 30) _
    then 0.5*cos(j*%pi/30)+0.5*cos((2*i+j+16)*%pi/40) _
    else A(i,j)
 --R                                                                   Type: Void
---E 486
+--E 561
 
---S 487 of 601
+--S 562 of 676
 Y(i,j) == _
   if (i <= 30) _
    then 0.5*sin(j*%pi/30)+0.5*sin((2*i+j+16)*%pi/40) _
    else B(i,j)
 --R                                                                   Type: Void
---E 487
+--E 562
 
---S 488 of 601
+--S 563 of 676
 Z(i,j) == j/4.0
 --R                                                                   Type: Void
---E 488
+--E 563
 
---S 489 of 601
+--S 564 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..60,j=0..60,_
            style=="smooth",title=="Strozzapreti")
 --R   Compiling function A with type (Variable i,Variable j) -> Expression
@@ -4794,17 +5508,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..60,j=0..60,_
 --R
 --R   (6)  ThreeDimensionalViewport: "Strozzapreti"
 --R                                               Type: ThreeDimensionalViewport
---E 489
+--E 564
 
---S 490 of 601
+--S 565 of 676
 zoom(v3d,2.5,2.5,2.5)
 --R                                                                   Type: Void
---E 490
+--E 565
 
---S 491 of 601
+--S 566 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 491
+--E 566
 
 \end{chunk}
 
@@ -4818,44 +5532,44 @@ timballo} (baked pasta dish).
 \begin{chunk}{*}
 )clear all
 
---S 492 of 601
+--S 567 of 676
 X0(i,j) == 0.4*cos(3*i*%pi/250)+j/80.0*sin(31*i*%pi/1000)
 --R                                                                   Type: Void
---E 492
+--E 567
 
---S 493 of 601
+--S 568 of 676
 Y0(i,j) == 0.4*sin(3*i*%pi/250)*sin(i*%pi/4000)^0.1
 --R                                                                   Type: Void
---E 493
+--E 568
 
---S 494 of 601
+--S 569 of 676
 Z0(i,j) == j/80.0+0.12*sin(9*i*%pi/1000)
 --R                                                                   Type: Void
---E 494
+--E 569
 
---S 495 of 601
+--S 570 of 676
 X1(i,j) == 0.4*cos(3*i*%pi/250)+j/80.0*sin(31*i*%pi/1000)
 --R                                                                   Type: Void
---E 495
+--E 570
 
---S 496 of 601
+--S 571 of 676
 Y1(i,j) == 0.4*sin(i*%pi/4000)^0.5*sin(3*i*%pi/250)
 --R                                                                   Type: Void
---E 496
+--E 571
 
---S 497 of 601
+--S 572 of 676
 Z1(i,j) == j/80.0+0.12*sin(9*i*%pi/1000)
 --R                                                                   Type: Void
---E 497
+--E 572
 
---S 498 of 601
+--S 573 of 676
 vsp:=createThreeSpace()
 --R
 --R   (7)  3-Space with 0 components
 --R                                                 Type: ThreeSpace DoubleFloat
---E 498
+--E 573
 
---S 499 of 601
+--S 574 of 676
 makeObject(surface(X0(i,j),Y0(i,j),Z0(i,j)),i=0..1000,j=0..4,space==vsp)
 --R   Compiling function X0 with type (Variable i,Variable j) -> 
 --R      Expression Float 
@@ -4872,9 +5586,9 @@ makeObject(surface(X0(i,j),Y0(i,j),Z0(i,j)),i=0..1000,j=0..4,space==vsp)
 --R
 --R   (8)  3-Space with 1 component
 --R                                                 Type: ThreeSpace DoubleFloat
---E 499
+--E 574
 
---S 500 of 601
+--S 575 of 676
 makeObject(surface(0.8*X1(i,j),Y1(i,j),0.9*Z1(i,j)),i=0..1000,j=0..4,_
            space==vsp)
 --R   Compiling function X1 with type (Variable i,Variable j) -> 
@@ -4892,9 +5606,9 @@ makeObject(surface(0.8*X1(i,j),Y1(i,j),0.9*Z1(i,j)),i=0..1000,j=0..4,_
 --R
 --R   (9)  3-Space with 2 components
 --R                                                 Type: ThreeSpace DoubleFloat
---E 500
+--E 575
 
---S 501 of 601
+--S 576 of 676
 makeObject(surface(X1(i,j),0.9*Y1(i,j),0.6*Z1(i,j)),i=0..1000,j=0..4,_
            space==vsp)
 --I   Compiling function %OY with type (DoubleFloat,DoubleFloat) -> 
@@ -4906,20 +5620,20 @@ makeObject(surface(X1(i,j),0.9*Y1(i,j),0.6*Z1(i,j)),i=0..1000,j=0..4,_
 --R
 --R   (10)  3-Space with 3 components
 --R                                                 Type: ThreeSpace DoubleFloat
---E 501
+--E 576
 
---S 502 of 601
+--S 577 of 676
 vp:=makeViewport3D(vsp,style=="smooth",title=="Tagliatelle")
 --R   Transmitting data...
 --R
 --R   (11)  ThreeDimensionalViewport: "Tagliatelle"
 --R                                               Type: ThreeDimensionalViewport
---E 502
+--E 577
 
---S 503 of 601
+--S 578 of 676
 close(vp)
 --R                                                                   Type: Void
---E 503
+--E 578
 
 \end{chunk}
 
@@ -4930,59 +5644,59 @@ narrower - almost hair-like.
 \begin{chunk}{*}
 )clear all
 
---S 504 of 601
+--S 579 of 676
 X0(i,j) == 0.5*cos(i*%pi/100)+0.05*cos(i*%pi/40)
 --R                                                                   Type: Void
---E 504
+--E 579
 
---S 505 of 601
+--S 580 of 676
 Y0(i,j) == 0.5*sin(i*%pi/4000)^0.1*sin(i*%pi/100)+0.075*sin(i*%pi/40)
 --R                                                                   Type: Void
---E 505
+--E 580
 
---S 506 of 601
+--S 581 of 676
 Z0(i,j) == 3.0*j/200.0+0.1*sin(i*%pi/125)
 --R                                                                   Type: Void
---E 506
+--E 581
 
---S 507 of 601
+--S 582 of 676
 X1(i,j) == 0.4*cos(i*%pi/100)
 --R                                                                   Type: Void
---E 507
+--E 582
 
---S 508 of 601
+--S 583 of 676
 Y1(i,j) == 0.4*sin(i*%pi/4000)^0.2*sin(i*%pi/100)
 --R                                                                   Type: Void
---E 508
+--E 583
 
---S 509 of 601
+--S 584 of 676
 Z1(i,j) == 3.0*j/200.0+0.1*sin(i*%pi/125)
 --R                                                                   Type: Void
---E 509
+--E 584
 
---S 510 of 601
+--S 585 of 676
 X2(i,j) == 0.3*cos(i*%pi/100)
 --R                                                                   Type: Void
---E 510
+--E 585
 
---S 511 of 601
+--S 586 of 676
 Y2(i,j) == 0.3*sin(3*i*%pi/1000)*sin(i*%pi/50)
 --R                                                                   Type: Void
---E 511
+--E 586
 
---S 512 of 601
+--S 587 of 676
 Z2(i,j) == -0.05+3.0*j/200.0+0.1*sin(i*%pi/125)
 --R                                                                   Type: Void
---E 512
+--E 587
 
---S 513 of 601
+--S 588 of 676
 vsp:=createThreeSpace()
 --R
 --R   (10)  3-Space with 0 components
 --R                                                 Type: ThreeSpace DoubleFloat
---E 513
+--E 588
 
---S 514 of 601
+--S 589 of 676
 makeObject(surface(X0(i,j)*0.6,Y0(i,j)*0.5,Z0(i,j)),i=0..1000,j=0..2,_
            space==vsp)
 --R   Compiling function X0 with type (Variable i,Variable j) -> 
@@ -5000,9 +5714,9 @@ makeObject(surface(X0(i,j)*0.6,Y0(i,j)*0.5,Z0(i,j)),i=0..1000,j=0..2,_
 --R
 --R   (11)  3-Space with 1 component
 --R                                                 Type: ThreeSpace DoubleFloat
---E 514
+--E 589
 
---S 515 of 601
+--S 590 of 676
 makeObject(surface(X1(i,j),Y1(i,j),Z1(i,j)),i=0..1000,j=0..2,space==vsp)
 --R   Compiling function X1 with type (Variable i,Variable j) -> 
 --R      Expression Float 
@@ -5019,9 +5733,9 @@ makeObject(surface(X1(i,j),Y1(i,j),Z1(i,j)),i=0..1000,j=0..2,space==vsp)
 --R
 --R   (12)  3-Space with 2 components
 --R                                                 Type: ThreeSpace DoubleFloat
---E 515
+--E 590
 
---S 516 of 601
+--S 591 of 676
 makeObject(surface(0.8*X1(i,j),0.9*Y1(i,j),1.3*Z1(i,j)),i=0..1000,j=0..2,_
            space==vsp)
 --I   Compiling function %PQ with type (DoubleFloat,DoubleFloat) -> 
@@ -5033,9 +5747,9 @@ makeObject(surface(0.8*X1(i,j),0.9*Y1(i,j),1.3*Z1(i,j)),i=0..1000,j=0..2,_
 --R
 --R   (13)  3-Space with 3 components
 --R                                                 Type: ThreeSpace DoubleFloat
---E 516
+--E 591
 
---S 517 of 601
+--S 592 of 676
 makeObject(surface(X2(i,j),0.9*Y2(i,j),1.5*Z2(i,j)),i=0..1000,j=0..2,_
            space==vsp)
 --R   Compiling function X2 with type (Variable i,Variable j) -> 
@@ -5053,20 +5767,20 @@ makeObject(surface(X2(i,j),0.9*Y2(i,j),1.5*Z2(i,j)),i=0..1000,j=0..2,_
 --R
 --R   (14)  3-Space with 4 components
 --R                                                 Type: ThreeSpace DoubleFloat
---E 517
+--E 592
 
---S 518 of 601
-vp:=makeViewport3D(vsp,style=="smooth",title=="Tagliatelle")
+--S 593 of 676
+vp:=makeViewport3D(vsp,style=="smooth",title=="Taglierini")
 --R   Transmitting data...
 --R
---R   (15)  ThreeDimensionalViewport: "Tagliatelle"
+--R   (15)  ThreeDimensionalViewport: "Taglierini"
 --R                                               Type: ThreeDimensionalViewport
---E 518
+--E 593
 
---S 519 of 601
+--S 594 of 676
 close(vp)
 --R                                                                   Type: Void
---E 519
+--E 594
 
 \end{chunk}
 
@@ -5080,59 +5794,59 @@ ingredient for a variety of {\sl timballo} dishes baked {\sl al forno}
 \begin{chunk}{*}
 )clear all
 
---S 520 of 601
+--S 595 of 676
 X0(i,j) == 0.5*cos(i*%pi/200)+0.05*cos(5*i*%pi/400)
 --R                                                                   Type: Void
---E 520
+--E 595
 
---S 521 of 601
+--S 596 of 676
 Y0(i,j) == 0.5*sin(i*%pi/8000)^0.1*sin(i*%pi/200)+0.075*sin(5*i*%pi/400)
 --R                                                                   Type: Void
---E 521
+--E 596
 
---S 522 of 601
+--S 597 of 676
 Z0(i,j) == 0.01*j+0.1*sin(i*%pi/250)
 --R                                                                   Type: Void
---E 522
+--E 597
 
---S 523 of 601
+--S 598 of 676
 X1(i,j) == 0.4*cos(i*%pi/200)
 --R                                                                   Type: Void
---E 523
+--E 598
 
---S 524 of 601
+--S 599 of 676
 Y1(i,j) == 0.4*sin(i*%pi/8000)^0.2*sin(i*%pi/200)
 --R                                                                   Type: Void
---E 524
+--E 599
 
---S 525 of 601
+--S 600 of 676
 Z1(i,j) == 0.01*j+0.1*sin(i*%pi/250)
 --R                                                                   Type: Void
---E 525
+--E 600
 
---S 526 of 601
+--S 601 of 676
 X2(i,j) == 0.3*cos(i*%pi/125)
 --R                                                                   Type: Void
---E 526
+--E 601
 
---S 527 of 601
+--S 602 of 676
 Y2(i,j) == 0.3*sin(3*i*%pi/2000)*sin(3*i*%pi/200)
 --R                                                                   Type: Void
---E 527
+--E 602
 
---S 528 of 601
+--S 603 of 676
 Z2(i,j) == -0.05+0.01*j+0.1*sin(i*%pi/250)
 --R                                                                   Type: Void
---E 528
+--E 603
 
---S 529 of 601
+--S 604 of 676
 vsp:=createThreeSpace()
 --R
 --R   (10)  3-Space with 0 components
 --R                                                 Type: ThreeSpace DoubleFloat
---E 529
+--E 604
 
---S 530 of 601
+--S 605 of 676
 makeObject(surface(X0(i,j)*0.6,Y0(i,j)*0.5,Z0(i,j)),i=0..2000,j=0..1,_
            space==vsp)
 --R   Compiling function X0 with type (Variable i,Variable j) -> 
@@ -5150,9 +5864,9 @@ makeObject(surface(X0(i,j)*0.6,Y0(i,j)*0.5,Z0(i,j)),i=0..2000,j=0..1,_
 --R
 --R   (11)  3-Space with 1 component
 --R                                                 Type: ThreeSpace DoubleFloat
---E 530
+--E 605
 
---S 531 of 601
+--S 606 of 676
 makeObject(surface(X1(i,j),Y1(i,j),Z1(i,j)),i=0..2000,j=0..2,space==vsp)
 --R   Compiling function X1 with type (Variable i,Variable j) -> 
 --R      Expression Float 
@@ -5169,9 +5883,9 @@ makeObject(surface(X1(i,j),Y1(i,j),Z1(i,j)),i=0..2000,j=0..2,space==vsp)
 --R
 --R   (12)  3-Space with 2 components
 --R                                                 Type: ThreeSpace DoubleFloat
---E 531
+--E 606
 
---S 532 of 601
+--S 607 of 676
 makeObject(surface(0.8*X1(i,j),0.9*Y1(i,j),1.3*Z1(i,j)),i=0..2000,j=0..2,_
            space==vsp)
 --I   Compiling function %QO with type (DoubleFloat,DoubleFloat) -> 
@@ -5183,9 +5897,9 @@ makeObject(surface(0.8*X1(i,j),0.9*Y1(i,j),1.3*Z1(i,j)),i=0..2000,j=0..2,_
 --R
 --R   (13)  3-Space with 3 components
 --R                                                 Type: ThreeSpace DoubleFloat
---E 532
+--E 607
 
---S 533 of 601
+--S 608 of 676
 makeObject(surface(X2(i,j),0.9*Y2(i,j),1.5*Z2(i,j)),i=0..2000,j=0..2,_
            space==vsp)
 --R   Compiling function X2 with type (Variable i,Variable j) -> 
@@ -5203,20 +5917,20 @@ makeObject(surface(X2(i,j),0.9*Y2(i,j),1.5*Z2(i,j)),i=0..2000,j=0..2,_
 --R
 --R   (14)  3-Space with 4 components
 --R                                                 Type: ThreeSpace DoubleFloat
---E 533
+--E 608
 
---S 534 of 601
+--S 609 of 676
 vp:=makeViewport3D(vsp,style=="smooth",title=="Tagliolini")
 --R   Transmitting data...
 --R
 --R   (15)  ThreeDimensionalViewport: "Tagliolini"
 --R                                               Type: ThreeDimensionalViewport
---E 534
+--E 609
 
---S 535 of 601
+--S 610 of 676
 close(vp)
 --R                                                                   Type: Void
---E 535
+--E 610
 
 \end{chunk}
 
@@ -5228,27 +5942,27 @@ carrots, broccoli, and cauliflower.
 \begin{chunk}{*}
 )clear all
 
---S 536 of 601
+--S 611 of 676
 A(i,j) == (3.0*i-60.0)*j/100.0
 --R                                                                   Type: Void
---E 536
+--E 611
 
---S 537 of 601
+--S 612 of 676
 B(i,j) == (3.0*i-60.0)*(100.0-j)/100.0
 --R                                                                   Type: Void
---E 537
+--E 612
 
---S 538 of 601
+--S 613 of 676
 C(i,j) == 3.0*(i-20.0)*(100.0-j)/100.0
 --R                                                                   Type: Void
---E 538
+--E 613
 
---S 539 of 601
+--S 614 of 676
 D(i,j) == 3.0*(i-20.0)*j/100.0
 --R                                                                   Type: Void
---E 539
+--E 614
 
---S 540 of 601
+--S 615 of 676
 E(i,j) == _
   if ((j <= 50) or (i <= 20)) _
    then A(i,j) _
@@ -5258,29 +5972,29 @@ E(i,j) == _
                then C(i,j) _
                else D(i,j)
 --R                                                                   Type: Void
---E 540
+--E 615
 
---S 541 of 601
+--S 616 of 676
 F(i,j) == (3+2.5*sin(E(i,j)*%pi/120)+3*sin(j*%pi/200)^10)
 --R                                                                   Type: Void
---E 541
+--E 616
 
---S 542 of 601
+--S 617 of 676
 X(i,j) == F(i,j)*cos(E(i,j)*%pi/10)+0.1*cos(j*%pi/2)
 --R                                                                   Type: Void
---E 542
+--E 617
 
---S 543 of 601
+--S 618 of 676
 Y(i,j) == F(i,j)*sin(E(i,j)*%pi/10)+0.1*sin(j*%pi/2)+3*sin(j*%pi/50)
 --R                                                                   Type: Void
---E 543
+--E 618
 
---S 544 of 601
+--S 619 of 676
 Z(i,j) == 18.0*j/25.0+2.0*E(i,j)/5.0
 --R                                                                   Type: Void
---E 544
+--E 619
 
---S 545 of 601
+--S 620 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..40,j=0..100,_
            style=="smooth",title=="Torchietti")
 --R   Compiling function A with type (Variable i,Variable j) -> Polynomial
@@ -5311,17 +6025,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..40,j=0..100,_
 --R
 --R   (10)  ThreeDimensionalViewport: "Torchietti"
 --R                                               Type: ThreeDimensionalViewport
---E 545
+--E 620
 
---S 546 of 601
+--S 621 of 676
 zoom(v3d,2.0,2.0,2.0)
 --R                                                                   Type: Void
---E 546
+--E 621
 
---S 547 of 601
+--S 622 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 547
+--E 622
 
 \end{chunk}
 
@@ -5335,39 +6049,39 @@ sauce as {\sl pastasciutta}.
 \begin{chunk}{*}
 )clear all
 
---S 548 of 601
+--S 623 of 676
 A(i,j) == 0.2*sin(i*%pi/200)+j/400.0
 --R                                                                   Type: Void
---E 548
+--E 623
 
---S 549 of 601
+--S 624 of 676
 B(i,j) == cos(j/60.0*(2.7+0.2*sin(i*%pi/120)^50)*%pi+1.4*%pi)
 --R                                                                   Type: Void
---E 549
+--E 624
 
---S 550 of 601
+--S 625 of 676
 C(i,j) == sin(j/60.0*(2.7+0.2*sin(i*%pi/120)^50)*%pi+1.4*%pi)
 --R                                                                   Type: Void
---E 550
+--E 625
 
---S 551 of 601
+--S 626 of 676
 X(i,j) == 0.5^(1+0.5*sin(i*%pi/120))*cos((11*i-60)*%pi/600) * _
           (1.35+(3+sin(i*%pi/120))*A(i,j)*B(i,j))
 --R                                                                   Type: Void
---E 551
+--E 626
 
---S 552 of 601
+--S 627 of 676
 Y(i,j) == 0.5*sin((11*i-60)*%pi/600) * _
           (1.35+(0.6+sin(i*%pi/120))*A(i,j)*B(i,j))
 --R                                                                   Type: Void
---E 552
+--E 627
 
---S 553 of 601
+--S 628 of 676
 Z(i,j) == 0.15+i/1200.0+0.5*(0.8*sin(i*%pi/120)+j/400.0)*sin(i*%pi/120)*C(i,j)
 --R                                                                   Type: Void
---E 553
+--E 628
 
---S 554 of 601
+--S 629 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..120,j=0..60,_
            style=="smooth",title=="Tortellini")
 --R   Compiling function A with type (Variable i,Variable j) -> Expression
@@ -5392,12 +6106,12 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..120,j=0..60,_
 --R
 --R   (7)  ThreeDimensionalViewport: "Tortellini"
 --R                                               Type: ThreeDimensionalViewport
---E 554
+--E 629
 
---S 555 of 601
+--S 630 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 555
+--E 630
 
 \end{chunk}
 
@@ -5411,23 +6125,23 @@ black pepper.
 \begin{chunk}{*}
 )clear all
 
---S 556 of 601
+--S 631 of 676
 X(i,j) == 6*cos(i*%pi/75)-3.5*cos(j*%pi/100) + _
           0.15*sin((13*i/75.0+j/15.0+1.5)*%pi)
 --R                                                                   Type: Void
---E 556
+--E 631
 
---S 557 of 601
+--S 632 of 676
 Y(i,j) == 6*sin(i*%pi/75)+0.15*sin((13*i/75.0+j/15.0)*%pi)
 --R                                                                   Type: Void
---E 557
+--E 632
 
---S 558 of 601
+--S 633 of 676
 Z(i,j) == 11.0*j/10.0
 --R                                                                   Type: Void
---E 558
+--E 633
 
---S 559 of 601
+--S 634 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..50,_
            style=="smooth",title=="Tortiglioni")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -5446,17 +6160,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..50,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Tortiglioni"
 --R                                               Type: ThreeDimensionalViewport
---E 559
+--E 634
 
---S 560 of 601
+--S 635 of 676
 zoom(v3d,2.0,2.0,2.0)
 --R                                                                   Type: Void
---E 560
+--E 635
 
---S 561 of 601
+--S 636 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 561
+--E 636
 
 \end{chunk}
 
@@ -5469,15 +6183,15 @@ penne}, {\sl trennette}, and {\sl ziti}.
 \begin{chunk}{*}
 )clear all
 
---S 562 of 601
+--S 637 of 676
 X(i,j) == _
   (if (i <= 33) _
     then (3.0*i/10.0) _
     else ((300.0-3*i)/20.0))
 --R                                                                   Type: Void
---E 562
+--E 637
 
---S 563 of 601
+--S 638 of 676
 Y(i,j) == _
  (if (i <= 33) _
    then (0.0) _
@@ -5485,9 +6199,9 @@ Y(i,j) == _
          then ((9*i-300)/20.0) _
          else ((900-9*i)/20.0)))
 --R                                                                   Type: Void
---E 563
+--E 638
 
---S 564 of 601
+--S 639 of 676
 Z(i,j) == _
  (if (i <= 33) _
    then (if (i <= 16) _
@@ -5497,9 +6211,9 @@ Z(i,j) == _
           then (-12.0+7.0*i/20.0+6.0*j/4.0) _
           else (35.0-7.0*i/20.0+6.0*j/4.0)))
 --R                                                                   Type: Void
---E 564
+--E 639
 
---S 565 of 601
+--S 640 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..100,j=0..40,_
            style=="smooth",title=="Trenne")
 --R   Compiling function X with type (Variable i,Variable j) -> Polynomial
@@ -5518,12 +6232,12 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..100,j=0..40,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Trenne"
 --R                                               Type: ThreeDimensionalViewport
---E 565
+--E 640
 
---S 566 of 601
+--S 641 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 566
+--E 641
 
 \end{chunk}
 
@@ -5537,17 +6251,17 @@ Pecorino Romano.
 \begin{chunk}{*}
 )clear all
 
---S 567 of 601
+--S 642 of 676
 X(i,j) == i/20.0
 --R                                                                   Type: Void
---E 567
+--E 642
 
---S 568 of 601
+--S 643 of 676
 Y(i,j) == j/20.0
 --R                                                                   Type: Void
---E 568
+--E 643
 
---S 569 of 601
+--S 644 of 676
 Z(i,j) == _
   if (i <= 30) _
    then 0.0 _
@@ -5555,9 +6269,9 @@ Z(i,j) == _
          then (10.0-i)/50.0*cos((j+2)*%pi/4) _
          else ((i-30.0)/50.0)*cos((j+15)*%pi/10)
 --R                                                                   Type: Void
---E 569
+--E 644
 
---S 570 of 601
+--S 645 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..40,j=0..200,_
            style=="smooth",title=="Tripoline")
 --R   Compiling function X with type (Variable i,Variable j) -> Polynomial
@@ -5576,17 +6290,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..40,j=0..200,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Tripoline"
 --R                                               Type: ThreeDimensionalViewport
---E 570
+--E 645
 
---S 571 of 601
+--S 646 of 676
 zoom(v3d,2.0,2.0,2.0)
 --R                                                                   Type: Void
---E 571
+--E 646
 
---S 572 of 601
+--S 647 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 572
+--E 647
 
 \end{chunk}
 
@@ -5599,29 +6313,29 @@ olive oil.
 \begin{chunk}{*}
 )clear all
 
---S 573 of 601
+--S 648 of 676
 A(i,j) == (3.0*i)/5.0+10*cos(j*%pi/25)
 --R                                                                   Type: Void
---E 573
+--E 648
 
---S 574 of 601
+--S 649 of 676
 X(i,j) == (1+sin(i*%pi/150)+2*sin(i*%pi/150)*sin(j*%pi/25)) * _
           sin(13*i*%pi/300)
 --R                                                                   Type: Void
---E 574
+--E 649
 
---S 575 of 601
+--S 650 of 676
 Y(i,j) == (1+sin(i*%pi/150)+2*sin(i*%pi/150)*sin(j*%pi/25)) * _
           cos(13*i*%pi/300)+5*sin(2*A(i,j)*%pi/125)
 --R                                                                   Type: Void
---E 575
+--E 650
 
---S 576 of 601
+--S 651 of 676
 Z(i,j) == A(i,j)
 --R                                                                   Type: Void
---E 576
+--E 651
 
---S 577 of 601
+--S 652 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..50,_
            style=="smooth",title=="Trofie")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -5642,17 +6356,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..50,_
 --R
 --R   (5)  ThreeDimensionalViewport: "Trofie"
 --R                                               Type: ThreeDimensionalViewport
---E 577
+--E 652
 
---S 578 of 601
+--S 653 of 676
 zoom(v3d,3.0,3.0,3.0)
 --R                                                                   Type: Void
---E 578
+--E 653
 
---S 579 of 601
+--S 654 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 579
+--E 654
 
 \end{chunk}
 
@@ -5664,51 +6378,51 @@ nuts, and a few shavings of Parmigiano-Reggiano.
 \begin{chunk}{*}
 )clear all
 
---S 580 of 601
+--S 655 of 676
 A(i,j) == 0.17-0.15*sin(j*%pi/120)+0.25*((60.0-j)/60.0)^10*sin(j*%pi/30)
 --R                                                                   Type: Void
---E 580
+--E 655
 
---S 581 of 601
+--S 656 of 676
 B(i,j) == 0.17-0.15*sin(j*%pi/120)+0.25*((60.0-j)/60.0)^10*sin(j*%pi/30)
 --R                                                                   Type: Void
---E 581
+--E 656
 
---S 582 of 601
+--S 657 of 676
 C(i,j) == 0.25*((60.0-j)/60.0)^5*(1-sin((i-128)*%pi/160))*cos(j*%pi/30)
 --R                                                                   Type: Void
---E 582
+--E 657
 
---S 583 of 601
+--S 658 of 676
 D(i,j) == (7.0*i)/400.0-48/25+C(i,j)+j/120.0*(1-sin((i-128)*%pi/64))
 --R                                                                   Type: Void
---E 583
+--E 658
 
---S 584 of 601
+--S 659 of 676
 X(i,j) == _
   if (i >= 128) _
    then (A(i,j)*(1-sin((i-128)*%pi/320)))*cos(7*i*%pi/160) _
    else B(i,j)*cos(7*i*%pi/160)
 --R                                                                   Type: Void
---E 584
+--E 659
 
---S 585 of 601
+--S 660 of 676
 Y(i,j) == _
   if (i >= 128) _
    then (A(i,j)*(1-sin((i-128)*%pi/160)))*sin(7*i*%pi/160) _
    else B(i,j)*sin(7*i*%pi/160)
 --R                                                                   Type: Void
---E 585
+--E 660
 
---S 586 of 601
+--S 661 of 676
 Z(i,j) == _
   if (i >= 128) _
    then D(i,j) _
    else i/400.0+j/100.0+0.25*((60.0-j)/60.0)^5*cos(j*%pi/30)
 --R                                                                   Type: Void
---E 586
+--E 661
 
---S 587 of 601
+--S 662 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..160,j=0..60,_
            style=="smooth",title=="Trottole")
 --R   Compiling function A with type (Variable i,Variable j) -> Expression
@@ -5735,17 +6449,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..160,j=0..60,_
 --R
 --R   (8)  ThreeDimensionalViewport: "Trottole"
 --R                                               Type: ThreeDimensionalViewport
---E 587
+--E 662
 
---S 588 of 601
+--S 663 of 676
 zoom(v3d,2.0,2.0,2.0)
 --R                                                                   Type: Void
---E 588
+--E 663
 
---S 589 of 601
+--S 664 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 589
+--E 664
 
 \end{chunk}
 
@@ -5758,22 +6472,22 @@ very filling soups, but can also be served in a light {\sl marinara}
 \begin{chunk}{*}
 )clear all
 
---S 590 of 601
+--S 665 of 676
 X(i,j) == 2*cos(i*%pi/75)+0.03*sin((4*i+7.5)*%pi/15)+0.5*cos(j*%pi/60)
 --R                                                                   Type: Void
---E 590
+--E 665
 
---S 591 of 601
+--S 666 of 676
 Y(i,j) == 2*sin(i*%pi/75)+0.03*sin(4*i*%pi/15)+0.5*sin(j*%pi/60)
 --R                                                                   Type: Void
---E 591
+--E 666
 
---S 592 of 601
+--S 667 of 676
 Z(i,j) == j/3.0
 --R                                                                   Type: Void
---E 592
+--E 667
 
---S 593 of 601
+--S 668 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..30,_
            style=="smooth",title=="Tubetti Rigati")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -5792,17 +6506,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..150,j=0..30,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Tubetti Rigati"
 --R                                               Type: ThreeDimensionalViewport
---E 593
+--E 668
 
---S 594 of 601
+--S 669 of 676
 zoom(v3d,2.0,2.0,2.0)
 --R                                                                   Type: Void
---E 594
+--E 669
 
---S 595 of 601
+--S 670 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 595
+--E 670
 
 \end{chunk}
 
@@ -5816,22 +6530,22 @@ Provolone.
 \begin{chunk}{*}
 )clear all
 
---S 596 of 601
+--S 671 of 676
 X(i,j) == 0.5*cos(i*%pi/35)+0.2*sin(j*%pi/70)
 --R                                                                   Type: Void
---E 596
+--E 671
 
---S 597 of 601
+--S 672 of 676
 Y(i,j) == 0.5*sin(i*%pi/35)+0.2*sin(j*%pi/70)
 --R                                                                   Type: Void
---E 597
+--E 672
 
---S 598 of 601
+--S 673 of 676
 Z(i,j) == j/14.0
 --R                                                                   Type: Void
---E 598
+--E 673
 
---S 599 of 601
+--S 674 of 676
 v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..70,j=0..70,_
            style=="smooth",title=="Ziti")
 --R   Compiling function X with type (Variable i,Variable j) -> Expression
@@ -5850,17 +6564,17 @@ v3d:=draw(surface(X(i,j),Y(i,j),Z(i,j)),i=0..70,j=0..70,_
 --R
 --R   (4)  ThreeDimensionalViewport: "Ziti"
 --R                                               Type: ThreeDimensionalViewport
---E 599
+--E 674
 
---S 600 of 601
+--S 675 of 676
 zoom(v3d,2.5,2.5,2.5)
 --R                                                                   Type: Void
---E 600
+--E 675
 
---S 601 of 601
+--S 676 of 676
 close(v3d)
 --R                                                                   Type: Void
---E 601
+--E 676
 
 )spool 
 )lisp (bye)
