For more information about AXIOM please visit:
AXIOM SESSIONscale=2.5]
Starts dribbling to session1.out (Mon Sep 15 12:01:24 2003) -------------------------------------------- -- There are different types of integers -- -------------------------------------------- 123 (1) 123 Type: PositiveInteger Time: 0 sec 0 (2) 0 Type: NonNegativeInteger Time: 0 sec -45 (3) - 45 Type: Integer Time: 0 sec ------------------------------------------ -- There is a type inference mechanism -- ------------------------------------------ 123 + (-45) (4) 78 Type: PositiveInteger Time: 0 sec 123 + (-456) (5) - 333 Type: Integer Time: 0 sec 355/113 355 (6) --- 113 Type: Fraction Integer Time: 0 sec 355/113.0 (7) 3.1415929203 539823009 Type: Float Time: 0.01 (IN) + 0.01 (OT) + 0.01 (GC) = 0.03 sec ------------------------------- -- Coercions are also needed -- ------------------------------- (355/113) :: Float (8) 3.1415929203 539823009 Type: Float Time: 0 sec (355/113) :: DoubleFloat (9) 3.1415929203539825 Type: DoubleFloat Time: 0 sec -- Type inference again n: Integer := 12 (10) 12 Type: Integer Time: 0 sec a: Integer := 3 (11) 3 Type: Integer Time: 0 sec a^n (12) 531441 Type: Fraction Integer Time: 0 sec n := -n (13) - 12 Type: Integer Time: 0.01 (OT) = 0.01 sec a^n 1 (14) ------ 531441 Type: Fraction Integer Time: 0 sec inv(a^n) (15) 531441 Type: Fraction Integer Time: 0 sec f := n * 1.0 (16) - 12.0 Type: Float Time: 0.02 (OT) = 0.02 sec a^f (17) 0.0000018816 7642315892 07457 Type: Float Time: 0.01 (IN) + 0.01 (OT) = 0.02 sec ------------------------------------------- -- Types have an influence on the result -- ------------------------------------------- gcd (123,45) (18) 3 Type: PositiveInteger Time: 0 sec gcd (123,45/1) (19) 1 Type: Fraction Integer Time: 0.03 (IN) + 0.01 (EV) + 0.01 (OT) = 0.05 sec x (20) x Type: Variable x Time: 0 sec x + 1 (21) x + 1 Type: Polynomial Integer Time: 0.01 (IN) + 0.01 (GC) = 0.02 sec x + 1/2 1 (22) x + - 2 Type: Polynomial Fraction Integer Time: 0.04 (IN) + 0.01 (OT) = 0.05 sec p := (2*x + 2) * (x + 2) 2 (23) 2x + 6x + 4 Type: Polynomial Integer Time: 0.01 (IN) = 0.01 sec q := (x + 1) * (x + 3) * 2 2 (24) 2x + 8x + 6 Type: Polynomial Integer Time: 0.01 (OT) = 0.01 sec gcd(p,q) (25) 2x + 2 Type: Polynomial Integer Time: 0.01 (OT) + 0.03 (GC) = 0.04 sec q := (x + 1) * (x + 3) * 2/1 2 (26) 2x + 8x + 6 Type: Polynomial Fraction Integer Time: 0.01 (IN) + 0.01 (EV) + 0.01 (OT) + 0.01 (GC) = 0.04 sec gcd (p,q) (27) x + 1 Type: Polynomial Fraction Integer Time: 0.02 (IN) + 0.01 (EV) = 0.03 sec ---------------------- -- Specifying types -- ---------------------- Z := Integer (28) Integer Type: Domain Time: 0 sec a: Z := 12 (29) 12 Type: Integer Time: 0 sec b: Z := 45 (30) 45 Type: Integer Time: 0 sec gcd(a,b) (31) 3 Type: PositiveInteger Time: 0 sec Q := Fraction Integer (32) Fraction Integer Type: Domain Time: 0 sec r: Q := a (33) 12 Type: Fraction Integer Time: 0 sec s: Q := b (34) 45 Type: Fraction Integer Time: 0 sec gcd(r,s) (35) 1 Type: Fraction Integer Time: 0 sec gcd(12,45)$Q (36) 1 Type: Fraction Integer Time: 0 sec gcd(12,45)$Z (37) 3 Type: Integer Time: 0 sec a := inv(a) Cannot convert right-hand side of assignment 1 -- 12 to an object of the type Integer of the left-hand side. -------------------- -- Browsing types -- -------------------- )sh Z Integer is a domain constructor. Abbreviation for Integer is INT This constructor is exposed in this frame. Issue )edit /usr/local/share/axiom/axiom2.3//mnt/linuxglibc2.1//../../src/algebra/integer.spad to see algebra source code for INT ------------------------------- Operations -------------------------------- ?*? : (Integer,%) -> % ?*? : (PositiveInteger,%) -> % ?*? : (%,%) -> % ?**? : (%,PositiveInteger) -> % ?+? : (%,%) -> % ?-? : (%,%) -> % -? : % -> % ?<? : (%,%) -> Boolean ?<=? : (%,%) -> Boolean ?=? : (%,%) -> Boolean ?>? : (%,%) -> Boolean ?>=? : (%,%) -> Boolean D : (%,NonNegativeInteger) -> % D : % -> % OMwrite : (%,Boolean) -> String OMwrite : % -> String 1 : () -> % 0 : () -> % ?^? : (%,PositiveInteger) -> % abs : % -> % addmod : (%,%,%) -> % associates? : (%,%) -> Boolean base : () -> % binomial : (%,%) -> % bit? : (%,%) -> Boolean coerce : % -> OutputForm coerce : Integer -> % coerce : % -> % convert : % -> DoubleFloat convert : % -> Float convert : % -> InputForm convert : % -> Integer convert : % -> Pattern Integer convert : % -> String copy : % -> % dec : % -> % differentiate : % -> % even? : % -> Boolean factor : % -> Factored % factorial : % -> % gcd : List % -> % gcd : (%,%) -> % hash : % -> SingleInteger hash : % -> % inc : % -> % init : () -> % invmod : (%,%) -> % latex : % -> String lcm : List % -> % lcm : (%,%) -> % length : % -> % mask : % -> % max : (%,%) -> % min : (%,%) -> % mulmod : (%,%,%) -> % negative? : % -> Boolean odd? : % -> Boolean one? : % -> Boolean permutation : (%,%) -> % positive? : % -> Boolean positiveRemainder : (%,%) -> % powmod : (%,%,%) -> % prime? : % -> Boolean ?quo? : (%,%) -> % random : % -> % random : () -> % rational : % -> Fraction Integer rational? : % -> Boolean recip : % -> Union(%,"failed") ?rem? : (%,%) -> % retract : % -> Integer sample : () -> % shift : (%,%) -> % sign : % -> Integer sizeLess? : (%,%) -> Boolean squareFree : % -> Factored % squareFreePart : % -> % submod : (%,%,%) -> % symmetricRemainder : (%,%) -> % unit? : % -> Boolean unitCanonical : % -> % zero? : % -> Boolean ?~=? : (%,%) -> Boolean ?*? : (NonNegativeInteger,%) -> % ?**? : (%,NonNegativeInteger) -> % OMwrite : (OpenMathDevice,%,Boolean) -> Void OMwrite : (OpenMathDevice,%) -> Void ?^? : (%,NonNegativeInteger) -> % characteristic : () -> NonNegativeInteger differentiate : (%,NonNegativeInteger) -> % divide : (%,%) -> Record(quotient: %,remainder: %) euclideanSize : % -> NonNegativeInteger expressIdealMember : (List %,%) -> Union(List %,"failed") exquo : (%,%) -> Union(%,"failed") extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %) extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed") gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial % multiEuclidean : (List %,%) -> Union(List %,"failed") nextItem : % -> Union(%,"failed") patternMatch : (%,Pattern Integer,PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) principalIdeal : List % -> Record(coef: List %,generator: %) rationalIfCan : % -> Union(Fraction Integer,"failed") reducedSystem : Matrix % -> Matrix Integer reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) retractIfCan : % -> Union(Integer,"failed") subtractIfCan : (%,%) -> Union(%,"failed") unitNormal : % -> Record(unit: %,canonical: %,associate: %) )sh Q Fraction Integer is a domain constructor. Abbreviation for Fraction is FRAC This constructor is exposed in this frame. Issue )edit /usr/local/share/axiom/axiom2.3//mnt/linuxglibc2.1//../../src/algebra/fraction.spad to see algebra source code for FRAC ------------------------------- Operations -------------------------------- ?*? : (Fraction Integer,%) -> % ?*? : (Integer,%) -> % ?*? : (PositiveInteger,%) -> % ?*? : (%,Fraction Integer) -> % ?*? : (%,Integer) -> % ?*? : (%,%) -> % ?**? : (%,Integer) -> % ?**? : (%,PositiveInteger) -> % ?+? : (%,%) -> % ?-? : (%,%) -> % -? : % -> % ?/? : (Integer,Integer) -> % ?/? : (%,%) -> % ?<? : (%,%) -> Boolean ?<=? : (%,%) -> Boolean ?=? : (%,%) -> Boolean ?>? : (%,%) -> Boolean ?>=? : (%,%) -> Boolean D : (%,List Symbol) -> % D : (%,NonNegativeInteger) -> % D : (%,Symbol) -> % D : % -> % OMwrite : (%,Boolean) -> String OMwrite : % -> String 1 : () -> % 0 : () -> % ?^? : (%,Integer) -> % ?^? : (%,PositiveInteger) -> % abs : % -> % associates? : (%,%) -> Boolean ceiling : % -> Integer coerce : % -> OutputForm coerce : Fraction Integer -> % coerce : Integer -> % coerce : Symbol -> % coerce : % -> % convert : % -> DoubleFloat convert : % -> Float convert : % -> InputForm convert : % -> Pattern Float convert : % -> Pattern Integer denom : % -> Integer denominator : % -> % differentiate : (%,Symbol) -> % differentiate : % -> % ?.? : (%,Integer) -> % eval : (%,Equation Integer) -> % eval : (%,Integer,Integer) -> % eval : (%,Symbol,Integer) -> % factor : % -> Factored % floor : % -> Integer fractionPart : % -> % gcd : List % -> % gcd : (%,%) -> % hash : % -> SingleInteger init : () -> % inv : % -> % latex : % -> String lcm : List % -> % lcm : (%,%) -> % max : (%,%) -> % min : (%,%) -> % negative? : % -> Boolean numer : % -> Integer numerator : % -> % one? : % -> Boolean positive? : % -> Boolean prime? : % -> Boolean ?quo? : (%,%) -> % random : () -> % recip : % -> Union(%,"failed") ?rem? : (%,%) -> % retract : % -> Fraction Integer retract : % -> Integer retract : % -> Symbol sample : () -> % sign : % -> Integer sizeLess? : (%,%) -> Boolean squareFree : % -> Factored % squareFreePart : % -> % unit? : % -> Boolean unitCanonical : % -> % wholePart : % -> Integer zero? : % -> Boolean ?~=? : (%,%) -> Boolean ?*? : (NonNegativeInteger,%) -> % ?**? : (%,NonNegativeInteger) -> % D : (%,List Symbol,List NonNegativeInteger) -> % D : (%,(Integer -> Integer),NonNegativeInteger) -> % D : (%,(Integer -> Integer)) -> % D : (%,Symbol,NonNegativeInteger) -> % OMwrite : (OpenMathDevice,%,Boolean) -> Void OMwrite : (OpenMathDevice,%) -> Void ?^? : (%,NonNegativeInteger) -> % characteristic : () -> NonNegativeInteger charthRoot : % -> Union(%,"failed") conditionP : Matrix % -> Union(Vector %,"failed") differentiate : (%,List Symbol,List NonNegativeInteger) -> % differentiate : (%,List Symbol) -> % differentiate : (%,(Integer -> Integer),NonNegativeInteger) -> % differentiate : (%,(Integer -> Integer)) -> % differentiate : (%,NonNegativeInteger) -> % differentiate : (%,Symbol,NonNegativeInteger) -> % divide : (%,%) -> Record(quotient: %,remainder: %) euclideanSize : % -> NonNegativeInteger eval : (%,List Equation Integer) -> % eval : (%,List Integer,List Integer) -> % eval : (%,List Symbol,List Integer) -> % expressIdealMember : (List %,%) -> Union(List %,"failed") exquo : (%,%) -> Union(%,"failed") extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %) extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed") factorPolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % factorSquareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial % map : ((Integer -> Integer),%) -> % multiEuclidean : (List %,%) -> Union(List %,"failed") nextItem : % -> Union(%,"failed") patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) patternMatch : (%,Pattern Integer,PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) principalIdeal : List % -> Record(coef: List %,generator: %) reducedSystem : Matrix % -> Matrix Integer reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) retractIfCan : % -> Union(Fraction Integer,"failed") retractIfCan : % -> Union(Integer,"failed") retractIfCan : % -> Union(Symbol,"failed") solveLinearPolynomialEquation : (List SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> Union(List SparseUnivariatePolynomial %,"failed") squareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % subtractIfCan : (%,%) -> Union(%,"failed") unitNormal : % -> Record(unit: %,canonical: %,associate: %) Q has Field (38) true Type: Boolean Time: 0 sec Z has Field (39) false Type: Boolean Time: 0 sec )sh Field Field is a category constructor Abbreviation for Field is FIELD This constructor is exposed in this frame. Issue )edit /usr/local/share/axiom/axiom2.3//mnt/linuxglibc2.1//../../src/algebra/catdef.spad to see algebra source code for FIELD ------------------------------- Operations -------------------------------- ?*? : (Fraction Integer,%) -> % ?*? : (%,Fraction Integer) -> % ?*? : (%,%) -> % ?*? : (Integer,%) -> % ?*? : (PositiveInteger,%) -> % ?**? : (%,Integer) -> % ?**? : (%,PositiveInteger) -> % ?+? : (%,%) -> % ?-? : (%,%) -> % -? : % -> % ?/? : (%,%) -> % ?=? : (%,%) -> Boolean 1 : () -> % 0 : () -> % ?^? : (%,Integer) -> % ?^? : (%,PositiveInteger) -> % associates? : (%,%) -> Boolean coerce : Fraction Integer -> % coerce : % -> % coerce : Integer -> % coerce : % -> OutputForm factor : % -> Factored % gcd : List % -> % gcd : (%,%) -> % hash : % -> SingleInteger inv : % -> % latex : % -> String lcm : List % -> % lcm : (%,%) -> % one? : % -> Boolean prime? : % -> Boolean ?quo? : (%,%) -> % recip : % -> Union(%,"failed") ?rem? : (%,%) -> % sample : () -> % sizeLess? : (%,%) -> Boolean squareFree : % -> Factored % squareFreePart : % -> % unit? : % -> Boolean unitCanonical : % -> % zero? : % -> Boolean ?~=? : (%,%) -> Boolean ?*? : (NonNegativeInteger,%) -> % ?**? : (%,NonNegativeInteger) -> % ?^? : (%,NonNegativeInteger) -> % characteristic : () -> NonNegativeInteger divide : (%,%) -> Record(quotient: %,remainder: %) euclideanSize : % -> NonNegativeInteger expressIdealMember : (List %,%) -> Union(List %,"failed") exquo : (%,%) -> Union(%,"failed") extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed") extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %) gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial % multiEuclidean : (List %,%) -> Union(List %,"failed") principalIdeal : List % -> Record(coef: List %,generator: %) subtractIfCan : (%,%) -> Union(%,"failed") unitNormal : % -> Record(unit: %,canonical: %,associate: %) Z has Ring (40) true Type: Boolean Time: 0 sec )sh Ring Ring is a category constructor Abbreviation for Ring is RING This constructor is exposed in this frame. Issue )edit /usr/local/share/axiom/axiom2.3//mnt/linuxglibc2.1//../../src/algebra/catdef.spad to see algebra source code for RING ------------------------------- Operations -------------------------------- ?*? : (%,%) -> % ?*? : (Integer,%) -> % ?*? : (PositiveInteger,%) -> % ?**? : (%,PositiveInteger) -> % ?+? : (%,%) -> % ?-? : (%,%) -> % -? : % -> % ?=? : (%,%) -> Boolean 1 : () -> % 0 : () -> % ?^? : (%,PositiveInteger) -> % coerce : Integer -> % coerce : % -> OutputForm hash : % -> SingleInteger latex : % -> String one? : % -> Boolean recip : % -> Union(%,"failed") sample : () -> % zero? : % -> Boolean ?~=? : (%,%) -> Boolean ?*? : (NonNegativeInteger,%) -> % ?**? : (%,NonNegativeInteger) -> % ?^? : (%,NonNegativeInteger) -> % characteristic : () -> NonNegativeInteger subtractIfCan : (%,%) -> Union(%,"failed") Z has OrderedRing (41) true Type: Boolean Time: 0 sec )sh OrderedRing OrderedRing is a category constructor Abbreviation for OrderedRing is ORDRING This constructor is exposed in this frame. Issue )edit /usr/local/share/axiom/axiom2.3//mnt/linuxglibc2.1//../../src/algebra/catdef.spad to see algebra source code for ORDRING ------------------------------- Operations -------------------------------- ?*? : (%,%) -> % ?*? : (Integer,%) -> % ?*? : (PositiveInteger,%) -> % ?**? : (%,PositiveInteger) -> % ?+? : (%,%) -> % -? : % -> % ?-? : (%,%) -> % ?<? : (%,%) -> Boolean ?<=? : (%,%) -> Boolean ?=? : (%,%) -> Boolean ?>? : (%,%) -> Boolean ?>=? : (%,%) -> Boolean 1 : () -> % 0 : () -> % ?^? : (%,PositiveInteger) -> % abs : % -> % coerce : Integer -> % coerce : % -> OutputForm hash : % -> SingleInteger latex : % -> String max : (%,%) -> % min : (%,%) -> % negative? : % -> Boolean one? : % -> Boolean positive? : % -> Boolean recip : % -> Union(%,"failed") sample : () -> % sign : % -> Integer zero? : % -> Boolean ?~=? : (%,%) -> Boolean ?*? : (NonNegativeInteger,%) -> % ?**? : (%,NonNegativeInteger) -> % ?^? : (%,NonNegativeInteger) -> % characteristic : () -> NonNegativeInteger subtractIfCan : (%,%) -> Union(%,"failed") Q has OrderedRing (42) true Type: Boolean Time: 0 sec Z has GcdDomain (43) true Type: Boolean Time: 0.01 (OT) = 0.01 sec Q has GcdDomain (44) true Type: Boolean Time: 0 sec Z has EuclideanDomain (45) true Type: Boolean Time: 0.01 (OT) = 0.01 sec Q has EuclideanDomain (46) true Type: Boolean Time: 0 sec -------------------------- -- Programming in AXIOM -- -------------------------- f(u,v) == gcd(u,v) Type: Void Time: 0 sec f(a,b) Compiling function f with type (Integer,Integer) -> Integer (48) 3 Type: PositiveInteger Time: 0 sec f(r,s) Compiling function f with type (Fraction Integer,Fraction Integer) -> Fraction Integer (49) 1 Type: Fraction Integer Time: 0 sec g(u,v) == while u ~= v repeat if u < v then v := v - u else u := u - v Type: Void Time: 0 sec h(u,v) == g(u,v) u Type: Void Time: 0 sec h(12,45) Compiling function g with type (PositiveInteger,PositiveInteger) -> Void Compiling function h with type (PositiveInteger,PositiveInteger) -> PositiveInteger (52) 12 Type: PositiveInteger Time: 0.03 (IN) = 0.03 sec h(u,v) == while u ~= v repeat if u < v then v := v - u else u := u - v u Compiled code for h has been cleared. 1 old definition(s) deleted for function or rule h Type: Void Time: 0 sec h(12,45) Compiling function h with type (PositiveInteger,PositiveInteger) -> Integer +++ |*2;h;1;Session1| redefined (54) 3 Type: PositiveInteger Time: 0.01 (OT) = 0.01 sec ------------------------------- -- Functions returning types -- ------------------------------- 3/4 3 (55) - 4 Type: Fraction Integer Time: 0 sec (x + 1)/(x + 2) x + 1 (56) ----- x + 2 Type: Fraction Polynomial Integer Time: 0.01 (OT) = 0.01 sec )sh Fraction Fraction S: IntegralDomain is a domain constructor Abbreviation for Fraction is FRAC This constructor is exposed in this frame. Issue )edit /usr/local/share/axiom/axiom2.3//mnt/linuxglibc2.1//../../src/algebra/fraction.spad to see algebra source code for FRAC ------------------------------- Operations -------------------------------- ?*? : (%,S) -> % ?*? : (S,%) -> % ?*? : (Fraction Integer,%) -> % ?*? : (%,Fraction Integer) -> % ?*? : (%,%) -> % ?*? : (Integer,%) -> % ?*? : (PositiveInteger,%) -> % ?**? : (%,Integer) -> % ?**? : (%,PositiveInteger) -> % ?+? : (%,%) -> % ?-? : (%,%) -> % -? : % -> % ?/? : (S,S) -> % ?/? : (%,%) -> % ?=? : (%,%) -> Boolean D : (%,(S -> S)) -> % D : % -> % if S has DIFRING 1 : () -> % 0 : () -> % ?^? : (%,Integer) -> % ?^? : (%,PositiveInteger) -> % associates? : (%,%) -> Boolean ceiling : % -> S if S has INS coerce : S -> % coerce : Fraction Integer -> % coerce : % -> % coerce : Integer -> % coerce : % -> OutputForm denom : % -> S denominator : % -> % factor : % -> Factored % floor : % -> S if S has INS gcd : List % -> % gcd : (%,%) -> % hash : % -> SingleInteger init : () -> % if S has STEP inv : % -> % latex : % -> String lcm : List % -> % lcm : (%,%) -> % map : ((S -> S),%) -> % numer : % -> S numerator : % -> % one? : % -> Boolean prime? : % -> Boolean ?quo? : (%,%) -> % random : () -> % if S has INS recip : % -> Union(%,"failed") ?rem? : (%,%) -> % retract : % -> S sample : () -> % sizeLess? : (%,%) -> Boolean squareFree : % -> Factored % squareFreePart : % -> % unit? : % -> Boolean unitCanonical : % -> % zero? : % -> Boolean ?~=? : (%,%) -> Boolean ?*? : (NonNegativeInteger,%) -> % ?**? : (%,NonNegativeInteger) -> % ?<? : (%,%) -> Boolean if S has ORDSET ?<=? : (%,%) -> Boolean if S has ORDSET ?>? : (%,%) -> Boolean if S has ORDSET ?>=? : (%,%) -> Boolean if S has ORDSET D : (%,(S -> S),NonNegativeInteger) -> % D : (%,List Symbol,List NonNegativeInteger) -> % if S has PDRING SYMBOL D : (%,Symbol,NonNegativeInteger) -> % if S has PDRING SYMBOL D : (%,List Symbol) -> % if S has PDRING SYMBOL D : (%,Symbol) -> % if S has PDRING SYMBOL D : (%,NonNegativeInteger) -> % if S has DIFRING OMwrite : (OpenMathDevice,%,Boolean) -> Void if S has INS and S has OM OMwrite : (OpenMathDevice,%) -> Void if S has INS and S has OM OMwrite : (%,Boolean) -> String if S has INS and S has OM OMwrite : % -> String if S has INS and S has OM ?^? : (%,NonNegativeInteger) -> % abs : % -> % if S has OINTDOM characteristic : () -> NonNegativeInteger charthRoot : % -> Union(%,"failed") if $ has CHARNZ and S has PFECAT or S has CHARNZ coerce : Symbol -> % if S has RETRACT SYMBOL conditionP : Matrix % -> Union(Vector %,"failed") if $ has CHARNZ and S has PFECAT convert : % -> DoubleFloat if S has REAL convert : % -> Float if S has REAL convert : % -> InputForm if S has KONVERT INFORM convert : % -> Pattern Float if S has KONVERT PATTERN FLOAT convert : % -> Pattern Integer if S has KONVERT PATTERN INT differentiate : (%,(S -> S)) -> % differentiate : (%,(S -> S),NonNegativeInteger) -> % differentiate : (%,List Symbol,List NonNegativeInteger) -> % if S has PDRING SYMBOL differentiate : (%,Symbol,NonNegativeInteger) -> % if S has PDRING SYMBOL differentiate : (%,List Symbol) -> % if S has PDRING SYMBOL differentiate : (%,Symbol) -> % if S has PDRING SYMBOL differentiate : (%,NonNegativeInteger) -> % if S has DIFRING differentiate : % -> % if S has DIFRING divide : (%,%) -> Record(quotient: %,remainder: %) ?.? : (%,S) -> % if S has ELTAB(S,S) euclideanSize : % -> NonNegativeInteger eval : (%,Symbol,S) -> % if S has IEVALAB(SYMBOL,S) eval : (%,List Symbol,List S) -> % if S has IEVALAB(SYMBOL,S) eval : (%,List Equation S) -> % if S has EVALAB S eval : (%,Equation S) -> % if S has EVALAB S eval : (%,S,S) -> % if S has EVALAB S eval : (%,List S,List S) -> % if S has EVALAB S expressIdealMember : (List %,%) -> Union(List %,"failed") exquo : (%,%) -> Union(%,"failed") extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed") extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %) factorPolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if S has PFECAT factorSquareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if S has PFECAT fractionPart : % -> % if S has EUCDOM gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial % max : (%,%) -> % if S has ORDSET min : (%,%) -> % if S has ORDSET multiEuclidean : (List %,%) -> Union(List %,"failed") negative? : % -> Boolean if S has OINTDOM nextItem : % -> Union(%,"failed") if S has STEP patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if S has PATMAB FLOAT patternMatch : (%,Pattern Integer,PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if S has PATMAB INT positive? : % -> Boolean if S has OINTDOM principalIdeal : List % -> Record(coef: List %,generator: %) reducedSystem : Matrix % -> Matrix S reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix S,vec: Vector S) reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) if S has LINEXP INT reducedSystem : Matrix % -> Matrix Integer if S has LINEXP INT retract : % -> Integer if S has RETRACT INT retract : % -> Fraction Integer if S has RETRACT INT retract : % -> Symbol if S has RETRACT SYMBOL retractIfCan : % -> Union(Integer,"failed") if S has RETRACT INT retractIfCan : % -> Union(Fraction Integer,"failed") if S has RETRACT INT retractIfCan : % -> Union(Symbol,"failed") if S has RETRACT SYMBOL retractIfCan : % -> Union(S,"failed") sign : % -> Integer if S has OINTDOM solveLinearPolynomialEquation : (List SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> Union(List SparseUnivariatePolynomial %,"failed") if S has PFECAT squareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if S has PFECAT subtractIfCan : (%,%) -> Union(%,"failed") unitNormal : % -> Record(unit: %,canonical: %,associate: %) wholePart : % -> S if S has EUCDOM )sh Polynomial Polynomial R: Ring is a domain constructor Abbreviation for Polynomial is POLY This constructor is exposed in this frame. Issue )edit /usr/local/share/axiom/axiom2.3//mnt/linuxglibc2.1//../../src/algebra/multpoly.spad to see algebra source code for POLY ------------------------------- Operations -------------------------------- ?*? : (%,R) -> % ?*? : (R,%) -> % ?*? : (%,%) -> % ?*? : (Integer,%) -> % ?*? : (PositiveInteger,%) -> % ?**? : (%,PositiveInteger) -> % ?+? : (%,%) -> % ?-? : (%,%) -> % -? : % -> % ?=? : (%,%) -> Boolean D : (%,List Symbol) -> % D : (%,Symbol) -> % 1 : () -> % 0 : () -> % ?^? : (%,PositiveInteger) -> % coefficients : % -> List R coerce : Symbol -> % coerce : R -> % coerce : Integer -> % coerce : % -> OutputForm differentiate : (%,Symbol) -> % eval : (%,Symbol,%) -> % eval : (%,Symbol,R) -> % eval : (%,List %,List %) -> % eval : (%,%,%) -> % eval : (%,Equation %) -> % eval : (%,List Equation %) -> % ground : % -> R ground? : % -> Boolean hash : % -> SingleInteger latex : % -> String leadingCoefficient : % -> R leadingMonomial : % -> % map : ((R -> R),%) -> % monomial? : % -> Boolean monomials : % -> List % one? : % -> Boolean primitiveMonomials : % -> List % recip : % -> Union(%,"failed") reductum : % -> % retract : % -> Symbol retract : % -> R sample : () -> % variables : % -> List Symbol zero? : % -> Boolean ?~=? : (%,%) -> Boolean ?*? : (Fraction Integer,%) -> % if R has ALGEBRA FRAC INT ?*? : (%,Fraction Integer) -> % if R has ALGEBRA FRAC INT ?*? : (NonNegativeInteger,%) -> % ?**? : (%,NonNegativeInteger) -> % ?/? : (%,R) -> % if R has FIELD ?<? : (%,%) -> Boolean if R has ORDSET ?<=? : (%,%) -> Boolean if R has ORDSET ?>? : (%,%) -> Boolean if R has ORDSET ?>=? : (%,%) -> Boolean if R has ORDSET D : (%,List Symbol,List NonNegativeInteger) -> % D : (%,Symbol,NonNegativeInteger) -> % ?^? : (%,NonNegativeInteger) -> % associates? : (%,%) -> Boolean if R has INTDOM binomThmExpt : (%,%,NonNegativeInteger) -> % if R has COMRING characteristic : () -> NonNegativeInteger charthRoot : % -> Union(%,"failed") if $ has CHARNZ and R has PFECAT or R has CHARNZ coefficient : (%,List Symbol,List NonNegativeInteger) -> % coefficient : (%,Symbol,NonNegativeInteger) -> % coefficient : (%,IndexedExponents Symbol) -> R coerce : % -> % if R has INTDOM coerce : Fraction Integer -> % if R has ALGEBRA FRAC INT or R has RETRACT FRAC INT conditionP : Matrix % -> Union(Vector %,"failed") if $ has CHARNZ and R has PFECAT content : (%,Symbol) -> % if R has GCDDOM content : % -> R if R has GCDDOM convert : % -> InputForm if Symbol has KONVERT INFORM and R has KONVERT INFORM convert : % -> Pattern Integer if Symbol has KONVERT PATTERN INT and R has KONVERT PATTERN INT convert : % -> Pattern Float if Symbol has KONVERT PATTERN FLOAT and R has KONVERT PATTERN FLOAT degree : (%,List Symbol) -> List NonNegativeInteger degree : (%,Symbol) -> NonNegativeInteger degree : % -> IndexedExponents Symbol differentiate : (%,List Symbol,List NonNegativeInteger) -> % differentiate : (%,Symbol,NonNegativeInteger) -> % differentiate : (%,List Symbol) -> % discriminant : (%,Symbol) -> % if R has COMRING eval : (%,List Symbol,List %) -> % eval : (%,List Symbol,List R) -> % exquo : (%,%) -> Union(%,"failed") if R has INTDOM exquo : (%,R) -> Union(%,"failed") if R has INTDOM factor : % -> Factored % if R has PFECAT factorPolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has PFECAT factorSquareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has PFECAT gcd : (%,%) -> % if R has GCDDOM gcd : List % -> % if R has GCDDOM gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial % if R has GCDDOM integrate : (%,Symbol) -> % if R has ALGEBRA FRAC INT isExpt : % -> Union(Record(var: Symbol,exponent: NonNegativeInteger),"failed") isPlus : % -> Union(List %,"failed") isTimes : % -> Union(List %,"failed") lcm : (%,%) -> % if R has GCDDOM lcm : List % -> % if R has GCDDOM mainVariable : % -> Union(Symbol,"failed") mapExponents : ((IndexedExponents Symbol -> IndexedExponents Symbol),%) -> % max : (%,%) -> % if R has ORDSET min : (%,%) -> % if R has ORDSET minimumDegree : (%,List Symbol) -> List NonNegativeInteger minimumDegree : (%,Symbol) -> NonNegativeInteger minimumDegree : % -> IndexedExponents Symbol monicDivide : (%,%,Symbol) -> Record(quotient: %,remainder: %) monomial : (%,List Symbol,List NonNegativeInteger) -> % monomial : (%,Symbol,NonNegativeInteger) -> % monomial : (R,IndexedExponents Symbol) -> % multivariate : (SparseUnivariatePolynomial %,Symbol) -> % multivariate : (SparseUnivariatePolynomial R,Symbol) -> % numberOfMonomials : % -> NonNegativeInteger patternMatch : (%,Pattern Integer,PatternMatchResult(Integer,%)) -> PatternMatchResult(Integer,%) if Symbol has PATMAB INT and R has PATMAB INT patternMatch : (%,Pattern Float,PatternMatchResult(Float,%)) -> PatternMatchResult(Float,%) if Symbol has PATMAB FLOAT and R has PATMAB FLOAT pomopo! : (%,R,IndexedExponents Symbol,%) -> % prime? : % -> Boolean if R has PFECAT primitivePart : (%,Symbol) -> % if R has GCDDOM primitivePart : % -> % if R has GCDDOM reducedSystem : Matrix % -> Matrix R reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix R,vec: Vector R) reducedSystem : (Matrix %,Vector %) -> Record(mat: Matrix Integer,vec: Vector Integer) if R has LINEXP INT reducedSystem : Matrix % -> Matrix Integer if R has LINEXP INT resultant : (%,%,Symbol) -> % if R has COMRING retract : % -> Integer if R has RETRACT INT retract : % -> Fraction Integer if R has RETRACT FRAC INT retractIfCan : % -> Union(Symbol,"failed") retractIfCan : % -> Union(Integer,"failed") if R has RETRACT INT retractIfCan : % -> Union(Fraction Integer,"failed") if R has RETRACT FRAC INT retractIfCan : % -> Union(R,"failed") solveLinearPolynomialEquation : (List SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> Union(List SparseUnivariatePolynomial %,"failed") if R has PFECAT squareFree : % -> Factored % if R has GCDDOM squareFreePart : % -> % if R has GCDDOM squareFreePolynomial : SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has PFECAT subtractIfCan : (%,%) -> Union(%,"failed") totalDegree : (%,List Symbol) -> NonNegativeInteger totalDegree : % -> NonNegativeInteger unit? : % -> Boolean if R has INTDOM unitCanonical : % -> % if R has INTDOM unitNormal : % -> Record(unit: %,canonical: %,associate: %) if R has INTDOM univariate : % -> SparseUnivariatePolynomial R univariate : (%,Symbol) -> SparseUnivariatePolynomial % P := Polynomial Q (57) Polynomial Fraction Integer Type: Domain Time: 0 sec P has EuclideanDomain (58) false Type: Boolean Time: 0.01 (IN) = 0.01 sec (x + 1)/(y + 2) x + 1 (59) ----- y + 2 Type: Fraction Polynomial Integer Time: 0.01 (IN) = 0.01 sec U := UnivariatePolynomial(x,Q) (60) UnivariatePolynomial(x,Fraction Integer) Type: Domain Time: 0 sec U has EuclideanDomain (61) true Type: Boolean Time: 0 sec p1: P := 6 * (x + 1) * (x + 2) 2 (62) 6x + 18x + 12 Type: Polynomial Fraction Integer Time: 0 sec p2: P := 9 * (x + 1) * ( x + 3) 2 (63) 9x + 36x + 27 Type: Polynomial Fraction Integer Time: 0.01 (IN) = 0.01 sec gcd(p1,p2) (64) x + 1 Type: Polynomial Fraction Integer Time: 0.01 (EV) = 0.01 sec u1: U := p1 2 (65) 6x + 18x + 12 Type: UnivariatePolynomial(x,Fraction Integer) Time: 0.03 (IN) = 0.03 sec u2: U := p2 2 (66) 9x + 36x + 27 Type: UnivariatePolynomial(x,Fraction Integer) Time: 0 sec gcd(u1,u2) (67) x + 1 Type: UnivariatePolynomial(x,Fraction Integer) Time: 0.01 (IN) = 0.01 sec gcd( (y^3-1) * p1, (y^2 -1) * p2) (68) (x + 1)y - x - 1 Type: Polynomial Fraction Integer Time: 0.02 (EV) = 0.02 sec Session1 (69) -> )spool Finished dribbling to session1.out.