aboutsummaryrefslogtreecommitdiff
path: root/src/algebra
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-09-11 21:16:16 +0000
committerdos-reis <gdr@axiomatics.org>2011-09-11 21:16:16 +0000
commit82b165809b7b67864b2ed9bc8217a2a197f58621 (patch)
tree72e0709c43ae8c844b85c1346870229ea5426860 /src/algebra
parentc868015d912449eb551ff379031b4fe4b3fab255 (diff)
downloadopen-axiom-82b165809b7b67864b2ed9bc8217a2a197f58621.tar.gz
* interp/lisplib.boot (isFunctor): Noe recognize Mapping as a functor.
* interp/g-opt.boot (doInlineCall): Tidy one more time. ($VMsideEffectFreeOperators): Move %aplly to $simpleVMoperators. (optLET): Remove as unused. * interp/lisp-backend.boot (expandApply): New. Register as expander for %apply forms. * interp/define.boot (getXmode): New. (displayMissingFunctions): Use it instead of getmode. (compDefineCapsuleFunction): Likewise. (addDomain): Likewise. (getSignature): Likewise. (compile): Likewise. (compJoin): Likewise. * interp/compiler.boot (comp3): Likewise. (compWithMappingMode): Likewise. (applyMapping): Generate %apply form. (compApplication): Likewise. (autoCoerceByModemap): Likewise. (extractCodeAndConstructTriple): Handle %apply forms. (setqSingle): For domain variables, put corresponding macro forms in the environment. * algebra/ore.spad.pamphlet (Automorphism): Define Rep as a constant. Adjust; include explicit uses of rep and per.
Diffstat (limited to 'src/algebra')
-rw-r--r--src/algebra/ore.spad.pamphlet23
1 files changed, 11 insertions, 12 deletions
diff --git a/src/algebra/ore.spad.pamphlet b/src/algebra/ore.spad.pamphlet
index e55b0eee..3aaeab04 100644
--- a/src/algebra/ore.spad.pamphlet
+++ b/src/algebra/ore.spad.pamphlet
@@ -296,26 +296,25 @@ Automorphism(R:Ring): Join(Group, Eltable(R, R)) with
morphism: ((R, Integer) -> R) -> %
++ morphism(f) returns the morphism given by \spad{f^n(x) = f(x,n)}.
== add
+ Rep == (R, Integer) -> R
err: R -> R
ident: (R, Integer) -> R
iter: (R -> R, NonNegativeInteger, R) -> R
iterat: (R -> R, R -> R, Integer, R) -> R
- apply: (%, R, Integer) -> R
-
- Rep := ((R, Integer) -> R)
-
- 1 == ident
+ apply: (Rep, R, Integer) -> R
+
+ 1 == per ident
err r == error "Morphism is not invertible"
ident(r, n) == r
f = g == %peq(f,g)$Foreign(Builtin)
- elt(f, r) == apply(f, r, 1)
- inv f == apply(f, #1, - #2)
- (f: %) ** (n: Integer) == apply(f, #1, n * #2)
+ elt(f, r) == apply(rep f, r, 1)
+ inv f == per apply(rep f, #1, - #2)
+ (f: %) ** (n: Integer) == per apply(rep f, #1, n * #2)
coerce(f:%):OutputForm == message("R -> R")
- morphism(f:(R, Integer) -> R):% == f
+ morphism(f:(R, Integer) -> R):% == per f
morphism(f:R -> R):% == morphism(f, err)
- morphism(f, g) == iterat(f, g, #2, #1)
- apply(f, r, n) == (g := f pretend ((R, Integer) -> R); g(r, n))
+ morphism(f, g) == per iterat(f, g, #2, #1)
+ apply(f, r, n) == f(r, n)
iterat(f, g, n, r) ==
negative? n => iter(g, (-n)::NonNegativeInteger, r)
@@ -327,7 +326,7 @@ Automorphism(R:Ring): Join(Group, Eltable(R, R)) with
f * g ==
f = g => f**2
- iterat(f g #1, (inv g)(inv f) #1, #2, #1)
+ per iterat(f g #1, (inv g)(inv f) #1, #2, #1)
@
\section{package OREPCTO UnivariateSkewPolynomialCategoryOps}