aboutsummaryrefslogtreecommitdiff
path: root/src/algebra/catdef.spad.pamphlet
diff options
context:
space:
mode:
Diffstat (limited to 'src/algebra/catdef.spad.pamphlet')
-rw-r--r--src/algebra/catdef.spad.pamphlet108
1 files changed, 64 insertions, 44 deletions
diff --git a/src/algebra/catdef.spad.pamphlet b/src/algebra/catdef.spad.pamphlet
index 735d2e43..a09a99ea 100644
--- a/src/algebra/catdef.spad.pamphlet
+++ b/src/algebra/catdef.spad.pamphlet
@@ -1430,7 +1430,7 @@ OrderedSet(): Category == SetCategory with
++ operation named \spad{differentiate} for partial differentiation with
++ respect to some domain of variables.
++ See Also:
-++ DifferentialDomain
+++ DifferentialDomain, PartialDifferentialSpace
PartialDifferentialDomain(T: Type, S: Type): Category == Type with
differentiate: (%,S) -> T
++ \spad{differentiate(x,v)} computes the partial derivative
@@ -1443,6 +1443,65 @@ PartialDifferentialDomain(T: Type, S: Type): Category == Type with
@
+\section{Partial Differential Space}
+
+<<category PDSPC PartialDifferentialSpace>>=
+)abbrev category PDSPC PartialDifferentialSpace
+++ Author: Gabriel Dos Reis
+++ Date Created: June 16, 2010
+++ Date Last Modified: June 16, 2010
+++ Description:
+++ This category captures the interface of domains stable by partial
+++ differentiation with respect to variables from some domain.
+++ See Also:
+++ PartialDifferentialDomain
+PartialDifferentialSpace(S: SetCategory): Category ==
+ PartialDifferentialDomain(%,S) with
+ differentiate: (%,List S) -> %
+ ++ \spad{differentiate(x,[s1,...sn])} computes successive
+ ++ partial derivatives, i.e.
+ ++ \spad{differentiate(...differentiate(x, s1)..., sn)}.
+ differentiate: (%,S,NonNegativeInteger) -> %
+ ++ \spad{differentiate(x,s,n)} computes multiple partial
+ ++ derivatives, i.e. \spad{n}-th derivative of \spad{x}
+ ++ with respect to \spad{s}.
+ differentiate: (%,List S,List NonNegativeInteger) -> %
+ ++ \spad{differentiate(x,[s1,...,sn],[n1,...,nn])} computes
+ ++ multiple partial derivatives, i.e.
+ D: (%,List S) -> %
+ ++ \spad{D(x,[s1,...sn])} is a shorthand for
+ ++ \spad{differentiate(x,[s1,...sn])}.
+ D: (%,S,NonNegativeInteger) -> %
+ ++ \spad{D(x,s,n)} is a shorthand for \spad{differentiate(x,s,n)}.
+ D: (%,List S,List NonNegativeInteger) -> %
+ ++ \spad{D(x,[s1,...,sn],[n1,...,nn])} is a shorthand for
+ ++ \spad{differentiate(x,[s1,...,sn],[n1,...,nn])}.
+ add
+ differentiate(r: %,l: List S) ==
+ for s in l repeat r := differentiate(r, s)
+ r
+
+ differentiate(r: %,s: S,n: NonNegativeInteger) ==
+ for i in 1..n repeat r := differentiate(r, s)
+ r
+
+ differentiate(r: %,ls: List S,ln: List NonNegativeInteger) ==
+ for s in ls for n in ln repeat r := differentiate(r, s, n)
+ r
+
+ D(r: %,v: S) ==
+ differentiate(r,v)
+
+ D(r: %,lv: List S) ==
+ differentiate(r,lv)
+ D(r: %,v: S,n: NonNegativeInteger) ==
+ differentiate(r,v,n)
+ D(r: %,lv: List S,ln: List NonNegativeInteger) ==
+ differentiate(r, lv, ln)
+
+@
+
+
\section{category PDRING PartialDifferentialRing}
<<category PDRING PartialDifferentialRing>>=
@@ -1463,49 +1522,8 @@ PartialDifferentialDomain(T: Type, S: Type): Category == Type with
++ \spad{differentiate(x+y,e) = differentiate(x,e)+differentiate(y,e)}
++ \spad{differentiate(x*y,e) = x*differentiate(y,e) + differentiate(x,e)*y}
-PartialDifferentialRing(S:SetCategory): Category == Ring with
- differentiate: (%, S) -> %
- ++ differentiate(x,v) computes the partial derivative of x
- ++ with respect to v.
- differentiate: (%, List S) -> %
- ++ differentiate(x,[s1,...sn]) computes successive partial derivatives,
- ++ i.e. \spad{differentiate(...differentiate(x, s1)..., sn)}.
- differentiate: (%, S, NonNegativeInteger) -> %
- ++ differentiate(x, s, n) computes multiple partial derivatives, i.e.
- ++ n-th derivative of x with respect to s.
- differentiate: (%, List S, List NonNegativeInteger) -> %
- ++ differentiate(x, [s1,...,sn], [n1,...,nn]) computes
- ++ multiple partial derivatives, i.e.
- D: (%, S) -> %
- ++ D(x,v) computes the partial derivative of x
- ++ with respect to v.
- D: (%, List S) -> %
- ++ D(x,[s1,...sn]) computes successive partial derivatives,
- ++ i.e. \spad{D(...D(x, s1)..., sn)}.
- D: (%, S, NonNegativeInteger) -> %
- ++ D(x, s, n) computes multiple partial derivatives, i.e.
- ++ n-th derivative of x with respect to s.
- D: (%, List S, List NonNegativeInteger) -> %
- ++ D(x, [s1,...,sn], [n1,...,nn]) computes
- ++ multiple partial derivatives, i.e.
- ++ \spad{D(...D(x, s1, n1)..., sn, nn)}.
- add
- differentiate(r:%, l:List S) ==
- for s in l repeat r := differentiate(r, s)
- r
-
- differentiate(r:%, s:S, n:NonNegativeInteger) ==
- for i in 1..n repeat r := differentiate(r, s)
- r
-
- differentiate(r:%, ls:List S, ln:List NonNegativeInteger) ==
- for s in ls for n in ln repeat r := differentiate(r, s, n)
- r
-
- D(r:%, v:S) == differentiate(r,v)
- D(r:%, lv:List S) == differentiate(r,lv)
- D(r:%, v:S, n:NonNegativeInteger) == differentiate(r,v,n)
- D(r:%, lv:List S, ln:List NonNegativeInteger) == differentiate(r, lv, ln)
+PartialDifferentialRing(S:SetCategory): Category ==
+ Join(Ring,PartialDifferentialSpace S)
@
\section{category PFECAT PolynomialFactorizationExplicit}
@@ -1966,9 +1984,11 @@ VectorSpace(S:Field): Category == Module(S) with
<<category DIFRING DifferentialRing>>
<<category DIFFMOD DifferentialModule>>
<<category PDDOM PartialDifferentialDomain>>
+<<category PDSPC PartialDifferentialSpace>>
<<category PDRING PartialDifferentialRing>>
<<category DIFEXT DifferentialExtension>>
@
+
\eject
\begin{thebibliography}{99}
\bibitem{1} nothing