aboutsummaryrefslogtreecommitdiff
path: root/src/input/mult2d.input.pamphlet
blob: 0a3526a878f8e6c1305eddbb171d0b329b5a19e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
\documentclass{article}
\usepackage{axiom}
\begin{document}
\title{\$SPAD/src/input mult2d.input}
\author{The Axiom Team}
\maketitle
\begin{abstract}
\end{abstract}
\eject
\tableofcontents
\eject
\section{License}
<<license>>=
--Copyright The Numerical Algorithms Group Limited 1994.
@
<<*>>=
<<license>>
)clear all

--draws x**i for i in 1..5, x=-1..1

makePoint(x:SF,y:SF):(Point SF) ==
  point([x,y])$(Point SF)

drawFun(fn:SF->SF, seg:Segment Float):List(List(Point SF)) ==
  fp := (t:SF):Point SF +-> makePoint(t, fn(t))
  plot := pointPlot(fp, segment(convert(lo seg)@SF, convert(hi seg)@SF))$PLOT
  lp := listBranches(plot)$PLOT

drawFuns(fl:List(SF->SF), seg:SegmentBinding Float):VIEW2D ==
  v := viewport2D()$VIEW2D
  i : PositiveInteger := 1
  for f in fl repeat
    llp := drawFun(f, segment seg)
    g := graphCurves(llp)$VIEW
    putGraph(v,g,i)$VIEW2D
    i := i + 1
  makeViewport2D(v)$VIEW2D

makeListFuns(fl:List(Expression Integer),_
             seg:SegmentBinding Float):List(SF->SF) ==
  lfuns:List(SF->SF) := empty()
  for f in fl repeat
    ff : (SF->SF) := makeFloatFunction(f, variable seg)$MakeFloatCompiledFunction(Expression Integer)
    lfuns := cons(ff, lfuns)
  lfuns

drawFuns(makeListFuns([x**i for i in 1..5], x=-1..1), x=-1..1)
drawFuns(makeListFuns([sin(x*i) for i in 1..5], x=-1..1), x=-1..1)
drawFuns(makeListFuns([sec x, sin x, cos x, tan x], x=-1..1), x=-1..1)
@
\eject
\begin{thebibliography}{99}
\bibitem{1} nothing
\end{thebibliography}
\end{document}