diff --git a/books/bookvol10.4.pamphlet b/books/bookvol10.4.pamphlet
index 09d613f..050bf59 100644
--- a/books/bookvol10.4.pamphlet
+++ b/books/bookvol10.4.pamphlet
@@ -21795,11 +21795,772 @@ d02AgentsPackage(): E == I where
)set message auto off
)clear all
---S 1 of 1
+--S 1 of 91
)show d03AgentsPackage
+--R
+--R d03AgentsPackage is a package constructor
+--R Abbreviation for d03AgentsPackage is D03AGNT
+--R This constructor is exposed in this frame.
+--R Issue )edit bookvol10.4.pamphlet to see algebra source code for D03AGNT
+--R
+--R------------------------------- Operations --------------------------------
+--R central? : (DoubleFloat,DoubleFloat,List(Expression(DoubleFloat))) -> Boolean
+--R elliptic? : Record(pde: List(Expression(DoubleFloat)),constraints: List(Record(start: DoubleFloat,finish: DoubleFloat,grid: NonNegativeInteger,boundaryType: Integer,dStart: Matrix(DoubleFloat),dFinish: Matrix(DoubleFloat))),f: List(List(Expression(DoubleFloat))),st: String,tol: DoubleFloat) -> Boolean
+--R subscriptedVariables : Expression(DoubleFloat) -> Expression(DoubleFloat)
+--R varList : (Symbol,NonNegativeInteger) -> List(Symbol)
+--R
--E 1
+)clear all
+
+--S 2 of 91
+showArrayValues true
+--R
+--R
+--R (1) true
+--R Type: Boolean
+--E 2
+
+--S 3 of 91
+showScalarValues true
+--R
+--R
+--R (2) true
+--R Type: Boolean
+--E 3
+
+--S 4 of 91
+ngx := 9
+--R
+--R
+--R (3) 9
+--R Type: PositiveInteger
+--E 4
+
+--S 5 of 91
+ngy := 9
+--R
+--R
+--R (4) 9
+--R Type: PositiveInteger
+--E 5
+
+--S 6 of 91
+lda := 134
+--R
+--R
+--R (5) 134
+--R Type: PositiveInteger
+--E 6
+
+--S 7 of 91
+alpha := 1.7
+--R
+--R
+--R (6) 1.7
+--R Type: Float
+--E 7
+
+--S 8 of 91
+hx := 1/(ngx+1)
+--R
+--R
+--R 1
+--R (7) --
+--R 10
+--R Type: Fraction(Integer)
+--E 8
+
+--S 9 of 91
+hy := 1/(ngy+1)
+--R
+--R
+--R 1
+--R (8) --
+--R 10
+--R Type: Fraction(Integer)
+--E 9
+
+--S 10 of 91
+a := new(lda,7,0.0)$Matrix DoubleFloat;
+--R
+--R
+--R Type: Matrix(DoubleFloat)
+--E 10
+
+--S 11 of 91
+rhs := new(1,lda,0.0)$Matrix DoubleFloat;
+--R
+--R
+--R Type: Matrix(DoubleFloat)
+--E 11
+
+--S 12 of 91
+ub := new(1,ngx*ngy,0.0)$Matrix DoubleFloat;
+--R
+--R
+--R Type: Matrix(DoubleFloat)
+--E 12
+
+--S 13 of 91
+for j in 1..ngy repeat
+ for i in 1..ngx repeat
+ k := (j-1)*ngx + i
+ a(k,1) := 1 - 0.5*alpha
+ a(k,2) := 0.5*alpha
+ a(k,3) := 1 - 0.5*alpha
+ a(k,4) := -4 + alpha
+ a(k,5) := 1 - 0.5*alpha
+ a(k,6) := 0.5*alpha
+ a(k,7) := 1 - 0.5*alpha
+ rhs(1,k) := -4.0*hx*hy
+--R
+--R Type: Void
+--E 13
+
+--S 14 of 91
+for i in 2..(ngx-1) repeat
+ ix := i
+ a(ix,1) := 0
+ a(ix,2) := 0
+ ix := i + (ngy -1)*ngx
+ a(ix,6) := 0
+ a(ix,7) := 0
+--R
+--R Compiling function G4674 with type Integer -> Boolean
+--R Compiling function G4844 with type NonNegativeInteger -> Boolean
+--R Type: Void
+--E 14
+
+--S 15 of 91
+for j in 2..(ngy-1) repeat
+ iy := (j-1)*ngx+1
+ a(iy,3) := 0
+ a(iy,6) := 0
+ iy := j *ngx
+ rhs(1,iy) := rhs(1,iy) - a(iy,5) - a(iy,2)
+ a(iy,2) := 0
+ a(iy,5) := 0
+--R
+--R Type: Void
+--E 15
+
+--S 16 of 91
+k := 1
+--R
+--R
+--R (15) 1
+--R Type: PositiveInteger
+--E 16
+
+--S 17 of 91
+a(1,1) := 0
+--R
+--R
+--R (16) 0.
+--R Type: DoubleFloat
+--E 17
+
+--S 18 of 91
+a(1,2) := 0
+--R
+--R
+--R (17) 0.
+--R Type: DoubleFloat
+--E 18
+
+--S 19 of 91
+a(1,3) := 0
+--R
+--R
+--R (18) 0.
+--R Type: DoubleFloat
+--E 19
+
+--S 20 of 91
+a(1,6) := 0
+--R
+--R
+--R (19) 0.
+--R Type: DoubleFloat
+--E 20
+
+--S 21 of 91
+k := 1 + (ngy-1)*ngx
+--R
+--R
+--R (20) 73
+--R Type: PositiveInteger
+--E 21
+
+--S 22 of 91
+a(k,3) := 0
+--R
+--R
+--R (21) 0.
+--R Type: DoubleFloat
+--E 22
+
+--S 23 of 91
+a(k,6) := 0
+--R
+--R
+--R (22) 0.
+--R Type: DoubleFloat
+--E 23
+
+--S 24 of 91
+a(k,7) := 0
+--R
+--R
+--R (23) 0.
+--R Type: DoubleFloat
+--E 24
+
+--S 25 of 91
+k := ngx
+--R
+--R
+--R (24) 9
+--R Type: PositiveInteger
+--E 25
+
+--S 26 of 91
+rhs(1,k) := rhs(1,k) - a(k,2)*0.5 -a(k,5)
+--R
+--R
+--R (25) - 0.61499999999999999
+--R Type: DoubleFloat
+--E 26
+
+--S 27 of 91
+a(k,1) := 0
+--R
+--R
+--R (26) 0.
+--R Type: DoubleFloat
+--E 27
+
+--S 28 of 91
+a(k,2) := 0
+--R
+--R
+--R (27) 0.
+--R Type: DoubleFloat
+--E 28
+
+--S 29 of 91
+a(k,5) := 0
+--R
+--R
+--R (28) 0.
+--R Type: DoubleFloat
+--E 29
+
+--S 30 of 91
+k := ngx * ngy
+--R
+--R
+--R (29) 81
+--R Type: PositiveInteger
+--E 30
+
+--S 31 of 91
+rhs(1,k) := rhs(1,k) - a(k,2) - a(k,5)
+--R
+--R
+--R (30) - 1.04
+--R Type: DoubleFloat
+--E 31
+
+--S 32 of 91
+a(k,2) := 0
+--R
+--R
+--R (31) 0.
+--R Type: DoubleFloat
+--E 32
+
+--S 33 of 91
+a(k,5) := 0
+--R
+--R
+--R (32) 0.
+--R Type: DoubleFloat
+--E 33
+
+--S 34 of 91
+a(k,6) := 0
+--R
+--R
+--R (33) 0.
+--R Type: DoubleFloat
+--E 34
+
+--S 35 of 91
+a(k,7) := 0
+--R
+--R
+--R (34) 0.
+--R Type: DoubleFloat
+--E 35
+
+--S 36 of 91
+ifail := 0
+--R
+--R
+--R (35) 0
+--R Type: NonNegativeInteger
+--E 36
+
+--S 37 of 91
+maxit := 15
+--R
+--R
+--R (36) 15
+--R Type: PositiveInteger
+--E 37
+
+--S 38 of 91
+acc := 1.0e-4
+--R
+--R
+--R (37) 0.0001
+--R Type: Float
+--E 38
+
+--S 39 of 91
+iout := 0
+--R
+--R
+--R (38) 0
+--R Type: NonNegativeInteger
+--E 39
+
+--S 40 of 91
+-- result:=d03edf(ngx,ngy,lda,maxit,acc,iout,a,rhs,ub,ifail)
+--E 40
+
+)clear all
+
+--S 41 of 91
+showArrayValues true
+--R
+--R
+--R (1) true
+--R Type: Boolean
+--E 41
+
+--S 42 of 91
+showScalarValues true
+--R
+--R
+--R (2) true
+--R Type: Boolean
+--E 42
+
+--S 43 of 91
+xmin := 0.0
+--R
+--R
+--R (3) 0.0
+--R Type: Float
+--E 43
+
+--S 44 of 91
+xmax := 1.0
+--R
+--R
+--R (4) 1.0
+--R Type: Float
+--E 44
+
+--S 45 of 91
+ymin := 0.0
+--R
+--R
+--R (5) 0.0
+--R Type: Float
+--E 45
+
+--S 46 of 91
+ymax := 1.0
+--R
+--R
+--R (6) 1.0
+--R Type: Float
+--E 46
+
+--S 47 of 91
+psi := -sin(X)*sin(Y) + 50*cos(X)*cos(Y) +50*sin(X)*cos(Y)
+--R
+--R
+--R (7) - sin(X)sin(Y) + 50cos(Y)sin(X) + 50cos(X)cos(Y)
+--R Type: Expression(Integer)
+--E 47
+
+--S 48 of 91
+d03eea :Vector Expression Float := [1,0,1,50,50,0,psi]
+--R
+--R
+--R (8)
+--R [1.0, 0.0, 1.0, 50.0, 50.0, 0.0,
+--R - 1.0 sin(X)sin(Y) + 50.0 cos(Y)sin(X) + 50.0 cos(X)cos(Y)]
+--R Type: Vector(Expression(Float))
+--E 48
+
+--S 49 of 91
+d03eeb :Matrix Expression Float := _
+ matrix[[0,1,-sin(X)],[1,0,sin(X)*sin(Y)],[1,0,sin(X)*sin(Y)],[0,1,-sin(Y)]]
+--R
+--R
+--R +0.0 1.0 - 1.0 sin(X)+
+--R | |
+--R |1.0 0.0 sin(X)sin(Y)|
+--R (9) | |
+--R |1.0 0.0 sin(X)sin(Y)|
+--R | |
+--R +0.0 1.0 - 1.0 sin(Y)+
+--R Type: Matrix(Expression(Float))
+--E 49
+
+--S 50 of 91
+ngx := 9
+--R
+--R
+--R (10) 9
+--R Type: PositiveInteger
+--E 50
+
+--S 51 of 91
+ngy := 9
+--R
+--R
+--R (11) 9
+--R Type: PositiveInteger
+--E 51
+
+--S 52 of 91
+lda := 133
+--R
+--R
+--R (12) 133
+--R Type: PositiveInteger
+--E 52
+
+--S 53 of 91
+scheme := "c"
+--R
+--R
+--R (13) "c"
+--R Type: String
+--E 53
+
+--S 54 of 91
+ifail := -1
+--R
+--R
+--R (14) - 1
+--R Type: Integer
+--E 54
+
+--S 55 of 91
+-- result:=d03eef(xmin,xmax,ymin,ymax,ngx,ngy,lda,scheme,ifail,_
+-- d03eea::ASP73('PDEF),d03eeb::ASP74('BNDY))
+--E 55
+
+)clear all
+
+--S 56 of 91
+showArrayValues true
+--R
+--R
+--R (1) true
+--R Type: Boolean
+--E 56
+
+--S 57 of 91
+showScalarValues true
+--R
+--R
+--R (2) true
+--R Type: Boolean
+--E 57
+
+--S 58 of 91
+xs := 0.0
+--R
+--R
+--R (3) 0.0
+--R Type: Float
+--E 58
+
+--S 59 of 91
+xf := 1.0
+--R
+--R
+--R (4) 1.0
+--R Type: Float
+--E 59
+
+--S 60 of 91
+l := 16
+--R
+--R
+--R (5) 16
+--R Type: PositiveInteger
+--E 60
+
+--S 61 of 91
+lbdcnd := 1
+--R
+--R
+--R (6) 1
+--R Type: PositiveInteger
+--E 61
+
+--S 62 of 91
+m := 32
+--R
+--R
+--R (7) 32
+--R Type: PositiveInteger
+--E 62
+
+--S 63 of 91
+n := 20
+--R
+--R
+--R (8) 20
+--R Type: PositiveInteger
+--E 63
+
+--S 64 of 91
+maxlm := 32
+--R
+--R
+--R (9) 32
+--R Type: PositiveInteger
+--E 64
+
+--S 65 of 91
+mdimf := m+1
+--R
+--R
+--R (10) 33
+--R Type: PositiveInteger
+--E 65
+
+--S 66 of 91
+ldimf := l+1
+--R
+--R
+--R (11) 17
+--R Type: PositiveInteger
+--E 66
+
+--S 67 of 91
+lwrk := 2*(n+1)*maxlm+3*l+3*m+4*n+6000
+--R
+--R
+--R (12) 7568
+--R Type: PositiveInteger
+--E 67
+
+--S 68 of 91
+bdxs := new(mdimf,n+1,0.0)$Matrix DoubleFloat;
+--R
+--R
+--R Type: Matrix(DoubleFloat)
+--E 68
+
+--S 69 of 91
+bdxf := new(mdimf,n+1,0.0)$Matrix DoubleFloat;
+--R
+--R
+--R Type: Matrix(DoubleFloat)
+--E 69
+
+--S 70 of 91
+ys := 0.0
+--R
+--R
+--R (15) 0.0
+--R Type: Float
+--E 70
+
+--S 71 of 91
+yf := 2*numeric(%pi)
+--R
+--R
+--R (16) 6.2831853071 795864769
+--R Type: Float
+--E 71
+
+--S 72 of 91
+mbdcnd := 0
+--R
+--R
+--R (17) 0
+--R Type: NonNegativeInteger
+--E 72
+
+--S 73 of 91
+bdys := new(ldimf,n+1,0.0)$Matrix DoubleFloat;
+--R
+--R
+--R Type: Matrix(DoubleFloat)
+--E 73
+
+--S 74 of 91
+bdyf := new(ldimf,n+1,0.0)$Matrix DoubleFloat;
+--R
+--R
+--R Type: Matrix(DoubleFloat)
+--E 74
+
+--S 75 of 91
+zs := 0.0
+--R
+--R
+--R (20) 0.0
+--R Type: Float
+--E 75
+
+--S 76 of 91
+zf := numeric(%pi)/2
+--R
+--R
+--R (21) 1.5707963267 948966192
+--R Type: Float
+--E 76
+
+--S 77 of 91
+nbdcnd := 2
+--R
+--R
+--R (22) 2
+--R Type: PositiveInteger
+--E 77
+
+--S 78 of 91
+bdzs := new(ldimf,m+1,0.0)$Matrix DoubleFloat;
+--R
+--R
+--R Type: Matrix(DoubleFloat)
+--E 78
+
+--S 79 of 91
+bdzf := new(ldimf,m+1,0.0)$Matrix DoubleFloat;
+--R
+--R
+--R Type: Matrix(DoubleFloat)
+--E 79
+
+--S 80 of 91
+lambda := -2
+--R
+--R
+--R (25) - 2
+--R Type: Integer
+--E 80
+
+--S 81 of 91
+ifail := 0
+--R
+--R
+--R (26) 0
+--R Type: NonNegativeInteger
+--E 81
+
+-- define grid points
+--S 82 of 91
+dx := (xf-xs)/l
+--R
+--R
+--R (27) 0.0625
+--R Type: Float
+--E 82
+
+--S 83 of 91
+x := [[xs + (i-1)*dx for i in 1..l+1]] :: Matrix DoubleFloat;
+--R
+--R
+--R Type: Matrix(DoubleFloat)
+--E 83
+
+--S 84 of 91
+dy := (yf-ys)/m
+--R
+--R
+--R (29) 0.1963495408 493620774
+--R Type: Float
+--E 84
+
+--S 85 of 91
+y := [[ys + (i-1)*dy for i in 1..m+1]] :: Matrix DoubleFloat;
+--R
+--R
+--R Type: Matrix(DoubleFloat)
+--E 85
+
+--S 86 of 91
+dz := (zf-zs)/n
+--R
+--R
+--R (31) 0.0785398163 3974483096 2
+--R Type: Float
+--E 86
+
+--S 87 of 91
+z := [[zs + (i-1)*dz for i in 1..n+1]] :: Matrix DoubleFloat;
+--R
+--R
+--R Type: Matrix(DoubleFloat)
+--E 87
+
+--S 88 of 91
+f:=zeroMatrix(ldimf,mdimf,n+1)$M3D DFLOAT;
+--R
+--R
+--R Type: ThreeDimensionalMatrix(DoubleFloat)
+--E 88
+
+--speed up these loops by compiling
+--S 89 of 91
+foo()==
+ for k in 1..n+1 repeat
+ for j in 1..m+1 repeat
+ setelt!(f,1,j,k,sin(y(1,j))*cos(z(1,k)))
+ for j in 1..m+1 repeat
+ for i in 1..l+1 repeat
+ setelt!(f,i,j,1,x(1,i)^4*sin(y(1,j)))
+ for k in 2..n+1 repeat
+ for j in 1..m+1 repeat
+ for i in 2..l repeat
+ setelt!(f,i,j,k,4*x(1,i)^2*(3-x(1,i)^2)*sin(y(1,j))*cos(z(1,k)))
+ for j in 1..m+1 repeat
+ for i in 1..l+1 repeat
+ bdzf(i,j):=-x(1,i)^4*sin(y(1,j))
+--R
+--R Type: Void
+--E 89
+
+--S 90 of 91
+foo()
+--R
+--R Compiling function foo with type () -> Void
+--R Type: Void
+--E 90
+
+--S 91 of 91
+-- result:=d03faf(xs,xf,l,lbdcnd,bdxs,bdxf,ys,yf,m,mbdcnd,bdys,bdyf,_
+-- zs,zf,n,nbdcnd,bdzs,bdzf,lambda,ldimf,mdimf,lwrk,f,ifail)
+--E 91
+
)spool
+
+
)lisp (bye)
\end{chunk}
\begin{chunk}{d03AgentsPackage.help}
diff --git a/changelog b/changelog
index 5dfaa32..2720fdc 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,8 @@
+20141207 tpd src/axiom-website/patches.html 20141207.01.tpd.patch
+20141207 tpd books/bookvol10.4 D03AGNT absorb src/input test case files
+20141207 tpd src/input/d03edf.input absorbed, removed
+20141207 tpd src/input/d03eef.input absorbed, removed
+20141207 tpd src/input/d03faf.input absorbed, removed
20141206 tpd src/axiom-website/patches.html 20141206.06.tpd.patch
20141206 tpd books/bookvol10.4 D02AGNT absorb src/input test case files
20141206 tpd src/axiom-website/patches.html 20141206.05.tpd.patch
diff --git a/patch b/patch
index 8bf8507..c4cb5c4 100644
--- a/patch
+++ b/patch
@@ -1,2 +1,2 @@
-books/bookvol10.4 D02AGNT absorb src/input test case files
+books/bookvol10.4 D03AGNT absorb src/input test case files
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 328f208..348c766 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -4770,6 +4770,8 @@ books/bookvol10.4 D01AGNT absorb src/input test case files
books/bookvol10.4 D02AGNT absorb src/input test case files
20141206.06.tpd.patch
books/bookvol10.4 D02AGNT absorb src/input test case files
+20141207.01.tpd.patch
+books/bookvol10.4 D03AGNT absorb src/input test case files