diff options
Diffstat (limited to 'src/algebra')
-rw-r--r-- | src/algebra/Makefile.in | 6 | ||||
-rw-r--r-- | src/algebra/Makefile.pamphlet | 6 | ||||
-rw-r--r-- | src/algebra/catdef.spad.pamphlet | 108 |
3 files changed, 72 insertions, 48 deletions
diff --git a/src/algebra/Makefile.in b/src/algebra/Makefile.in index a56827df..5bbaa9dd 100644 --- a/src/algebra/Makefile.in +++ b/src/algebra/Makefile.in @@ -342,6 +342,7 @@ $(OUT)/DIFFDOM.$(FASLEXT): $(OUT)/TYPE.$(FASLEXT) $(OUT)/DIFFSPC.$(FASLEXT): $(OUT)/DIFFDOM.$(FASLEXT) $(OUT)/DIFFMOD.$(FASLEXT): $(OUT)/DIFFSPC.$(FASLEXT) $(OUT)/PDDOM.$(FASLEXT): $(OUT)/TYPE.$(FASLEXT) +$(OUT)/PDSPC.$(FASLEXT): $(OUT)/PDDOM.$(FASLEXT) axiom_algebra_layer_0 = \ AHYP ATTREG CFCAT ELTAB KOERCE KONVERT \ @@ -368,7 +369,7 @@ axiom_algebra_layer_0 = \ DIOPS DIOPS- STRING STRICAT ISTRING ILIST \ LIST DIFFDOM DIFFDOM- DIFFSPC DIFFSPC- DIFFMOD \ LINEXP PATMAB REAL CHARZ LOGIC LOGIC- \ - RTVALUE SYSPTR PDDOM PDDOM- + RTVALUE SYSPTR PDDOM PDDOM- PDSPC PDSPC- axiom_algebra_layer_0_nrlibs = \ $(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_0)) @@ -499,13 +500,14 @@ axiom_algebra_layer_4_objects = \ $(OUT)/KERNEL.$(FASLEXT): $(OUT)/KERNEL2.$(FASLEXT) $(OUT)/DVARCAT.$(FASLEXT): $(OUT)/DIFFSPC.$(FASLEXT) +$(OUT)/PDRING.$(FASLEXT): $(OUT)/PDSPC.$(FASLEXT) axiom_algebra_layer_5 = \ CHARNZ DVARCAT DVARCAT- ELEMFUN \ ELEMFUN- ESTOOLS2 FCOMP FPATMAB IDPAM IDPO \ INCRMAPS KERNEL2 MODMONOM MONADWU MONADWU- \ MRF2 NARNG NARNG- NSUP2 ODVAR OPQUERY \ - ORDMON PATMATCH PERMCAT PDRING PDRING- \ + ORDMON PATMATCH PERMCAT PDRING \ SDVAR SUP2 TRIGCAT TRIGCAT- ULS2 UP2 \ ELABEXPR KERNEL diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet index 3149256b..c65cf20b 100644 --- a/src/algebra/Makefile.pamphlet +++ b/src/algebra/Makefile.pamphlet @@ -296,6 +296,7 @@ $(OUT)/DIFFDOM.$(FASLEXT): $(OUT)/TYPE.$(FASLEXT) $(OUT)/DIFFSPC.$(FASLEXT): $(OUT)/DIFFDOM.$(FASLEXT) $(OUT)/DIFFMOD.$(FASLEXT): $(OUT)/DIFFSPC.$(FASLEXT) $(OUT)/PDDOM.$(FASLEXT): $(OUT)/TYPE.$(FASLEXT) +$(OUT)/PDSPC.$(FASLEXT): $(OUT)/PDDOM.$(FASLEXT) axiom_algebra_layer_0 = \ AHYP ATTREG CFCAT ELTAB KOERCE KONVERT \ @@ -322,7 +323,7 @@ axiom_algebra_layer_0 = \ DIOPS DIOPS- STRING STRICAT ISTRING ILIST \ LIST DIFFDOM DIFFDOM- DIFFSPC DIFFSPC- DIFFMOD \ LINEXP PATMAB REAL CHARZ LOGIC LOGIC- \ - RTVALUE SYSPTR PDDOM PDDOM- + RTVALUE SYSPTR PDDOM PDDOM- PDSPC PDSPC- axiom_algebra_layer_0_nrlibs = \ $(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_0)) @@ -478,13 +479,14 @@ axiom_algebra_layer_4_objects = \ $(OUT)/KERNEL.$(FASLEXT): $(OUT)/KERNEL2.$(FASLEXT) $(OUT)/DVARCAT.$(FASLEXT): $(OUT)/DIFFSPC.$(FASLEXT) +$(OUT)/PDRING.$(FASLEXT): $(OUT)/PDSPC.$(FASLEXT) axiom_algebra_layer_5 = \ CHARNZ DVARCAT DVARCAT- ELEMFUN \ ELEMFUN- ESTOOLS2 FCOMP FPATMAB IDPAM IDPO \ INCRMAPS KERNEL2 MODMONOM MONADWU MONADWU- \ MRF2 NARNG NARNG- NSUP2 ODVAR OPQUERY \ - ORDMON PATMATCH PERMCAT PDRING PDRING- \ + ORDMON PATMATCH PERMCAT PDRING \ SDVAR SUP2 TRIGCAT TRIGCAT- ULS2 UP2 \ ELABEXPR KERNEL 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 |