\documentclass{article}
\usepackage{axiom}
\begin{document}
\title{\$SPAD/src/input tknot.input}
\author{The Axiom Team}
\maketitle
\begin{abstract}
\end{abstract}
\eject
\tableofcontents
\eject
\section{License}
<<license>>=
--Copyright The Numerical Algorithms Group Limited 1994.
@
<<*>>=
<<license>>
-- Create a (p,q) torus-knot with radius r around the curve.
-- The formula was derived by Larry Lambe.

-- To produce a trefoil knot:
--   torusKnot(2, 3, 0.5, 10, 200)

-- compile, don't interpret functions
)set function  compile on

-- read in the numeric generalized tube program
)read ntube

-- Create a (p,q) torus-knot with radius r around the curve.
-- The formula was derived by Larry Lambe.
-- To produce a trefoil knot:
--   torusKnot(2, 3, 0.5)
torusKnot(p:DFLOAT, q:DFLOAT, r:DFLOAT, uSteps:PI, tSteps:PI):VIEW3D ==
  -- equation for the torus knot
  knot := (t:DFLOAT):Point DFLOAT +-> 
    fac := 4/(2.2@DFLOAT-sin(q*t))
    fac * point [cos(p*t), sin(p*t), cos(q*t)]
  -- equation for the cross section of the tube
  circle := (u:DFLOAT, t:DFLOAT):Point DFLOAT +->
    r * point [cos u, sin u]
  -- draw the tube around the knot
  ntubeDrawOpt(knot, circle, 0..2*%pi, 0..2*%pi, var1Steps == uSteps, 
               var2Steps == tSteps)


@
\eject
\begin{thebibliography}{99}
\bibitem{1} nothing
\end{thebibliography}
\end{document}