From ab8cc85adde879fb963c94d15675783f2cf4b183 Mon Sep 17 00:00:00 2001 From: dos-reis Date: Tue, 14 Aug 2007 05:14:52 +0000 Subject: Initial population. --- src/input/fixed.input.pamphlet | 1497 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1497 insertions(+) create mode 100644 src/input/fixed.input.pamphlet (limited to 'src/input/fixed.input.pamphlet') diff --git a/src/input/fixed.input.pamphlet b/src/input/fixed.input.pamphlet new file mode 100644 index 00000000..67279b89 --- /dev/null +++ b/src/input/fixed.input.pamphlet @@ -0,0 +1,1497 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input fixed.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<> +--fixed.input + +------------------------------------------------------------------- +-- daly/10/06/92 +------------------------------------------------------------------- +)clear all +-- something is wrong with the integration of serices, when the +-- coeffiennts are not constants. while the series is mathematically +-- correct, this is not what one expects as the taylor series, which +-- does not exist. +series(x/(x+log(x))) +-- here integrate is treating log(x) as a constant, which is incorrect. +integrate(%) + +------------------------------------------------------------------- +-- bmt/10/19/92 integrate problem -- serious, wrong answer +------------------------------------------------------------------- +)clear all +2*sin(t)*sqrt(1+cos(t)) +--correct answer is 2*sin(t)/sqrt(1+cos(t)) +integrate(%,t) + +------------------------------------------------------------------- +-- bmt/10/20/92 multiple complex in type tower +------------------------------------------------------------------- +)clear all +n:Complex ? +-- an invalid type. can't have 2 complex constructors in a tower +n:=x/y+%i + +------------------------------------------------------------------------- +-- grabm/09/28/92 coercion bug +-- comment: this coercion must carefully check whether there is a symbol +-- among the kernels which is equal to an indeterminate of the +-- polynomial ring, and not simply considering every expression +-- as a constant +------------------------------------------------------------------------- +)clear all +f:=(a-b-c-d)**2::EXPR INT +f::DMP(['a,'b],EXPR INT) +degree % + +------------------------------------------------------------------- +-- bmt/10/26/92 wrong answer +-- comment:I believe this problem simplifies to +-- lfintegrate(sqrt(u**3+u**2),u) which returns the +-- wrong answer due to some confusion in prootintegrate in INTPAF. +-- I think the confusion happens with the use of radPoly and rootPoly. +-- The answer is computed with respect to the result returned by rootPoly +-- but the kernel which is substituted for "y" corresponds to radPoly. +------------------------------------------------------------------- +)clear all +-- should be 2*sin(t)/sqrt(1+cos(t)) +integrate(sqrt(1+cos(x)),x) + +------------------------------------------------------------------- +-- bmt/09/28/92 bug in ITRIGMNP +-- gives: +-- Cannot convert kernel to gaussian function +------------------------------------------------------------------- +)clear all +integrate(exp(x**2),x) + +------------------------------------------------------------------- +-- themos/11/06/92 integration bug +--comment: +--I suggest changing line 11 of limitedLogs in INTTR from: +-- rows := max(degree den, 1 + "max"/[degree(u.contrib) for u in l1]) +--to: +-- rows := max(degree den, +-- 1 + reduce(max,[degree(u.contrib) for u in l1],0)$List(N)) +--Does you agree, thus max/ empty list would return 0. +------------------------------------------------------------------- +)clear all +f:=log(1-(b*x/(a+c*x**2)))/x +-- 2 +-- c x - b x + a +-- log(--------------) +-- 2 +-- c x + a +-- (1) ------------------- +-- x +integrate(%,x) +-- 2 +-- %J c - %J b + a +-- log(---------------) +-- x 2 +-- ++ %J c + a +-- (2) | -------------------- d%J +-- ++ %J +expand f +-- 2 2 +-- - log(c x + a) + log(c x - b x + a) +-- (3) ------------------------------------- +-- x +integrate(%,x) +-- >> Error detected within library code: +-- No identity element for reduce of empty list using operation +-- max + +------------------------------------------------------------------- +-- bmt/11/17/92 interpreter resolve problem +------------------------------------------------------------------- +-- says cannot find an appropriate * +)clear all +%i/m*sqrt(m) + +------------------------------------------------------------------------- +-- tpd/09/22/92 this generates extra brackets +------------------------------------------------------------------------- +)clear all +foo n == matrix[[i for i in 1..n] for j in 1..n] +foo + +------------------------------------------------------------------------- +--- tpd/09/24/92 matrix multiplication appears broken in the product. +-- fails with +-- >> System error: +-- The function |deleteAssoc| is undefined. +-- You are being returned to the top level of the interpreter. +-- comment: (barry) +-- This bug is due to the new autoloading scheme for the compiler, the +-- function deleteAssoc needs to be moved into the in core system. +-- As a work around, +-- if you compile a non existent file, the apropriate files will be loaded, +-- e.g.: +-- )co foo +-- comment: this works in version 2 +------------------------------------------------------------------------- +msq := Matrix SquareMatrix(2,POLY INT) +m : msq := zero(2,2) +m(1,1) := matrix([[1,2],[a,b]]) +m(1,2) := matrix([[a,b],[2,b]]) +m(2,2) := matrix([[1,2],[2,b]]) +m +m*m +m**2 +m**3 +(m*m)*m +mm:=m*m +mm*m + +------------------------------------------------------------------------- +-- tpd/09/25/92 new equation.spad from johannes grabmeier +------------------------------------------------------------------------- + + +--Furthermore, we have function to put 0 or 1 on one side +--and factor the left hand side, after the right hand side +--is 0 and we have an IntegralDomain. +--Johannes + +eq1 := (-6*x**3+13*x**2+4)=(-x**4+12*x) +-- +-- +-- 3 2 4 +-- (1) - 6x + 13x + 4= - x + 12x +-- Type: Equation Polynomial Integer +-- Time: 1.61 (IN) + 1.47 (OT) = 3.08 sec +eq2 := x**4+13*x**2-12*x = 6*x**3-4 +-- +-- +-- 4 2 3 +-- (2) x + 13x - 12x= 6x - 4 +-- Type: Equation Polynomial Integer +-- Time: 0.16 (IN) + 0.11 (OT) = 0.27 sec +eq := eq1*y**2+eq2 +-- +-- +-- 3 2 2 4 2 4 2 3 +-- (3) (- 6x + 13x + 4)y + x + 13x - 12x= (- x + 12x)y + 6x - 4 +-- Type: Equation Polynomial Integer +-- Time: 0.26 (IN) + 0.01 (EV) + 0.01 (OT) + 1.54 (GC) = 1.82 sec +swap % +-- +-- +-- 4 2 3 3 2 2 4 2 +-- (4) (- x + 12x)y + 6x - 4= (- 6x + 13x + 4)y + x + 13x - 12x +-- Type: Equation Polynomial Integer +-- Time: 0.07 (OT) = 0.07 sec +% + 4 +-- +-- +-- 4 2 3 3 2 2 4 2 +-- (5) (- x + 12x)y + 6x = (- 6x + 13x + 4)y + x + 13x - 12x + 4 +-- Type: Equation Polynomial Integer +-- Time: 0.69 (IN) + 0.01 (OT) = 0.70 sec +%-6*x**3 +-- +-- +-- 4 2 3 2 2 4 3 2 +-- (6) (- x + 12x)y = (- 6x + 13x + 4)y + x - 6x + 13x - 12x + 4 +-- Type: Equation Polynomial Integer +-- Time: 0.19 (IN) + 0.01 (OT) = 0.20 sec +leftZero % +-- +-- +-- 4 3 2 2 4 3 2 +-- (7) 0= (x - 6x + 13x - 12x + 4)y + x - 6x + 13x - 12x + 4 +-- Type: Equation Polynomial Integer +-- Time: 0.01 (IN) + 0.05 (OT) = 0.06 sec +swap % +-- +-- +-- 4 3 2 2 4 3 2 +-- (8) (x - 6x + 13x - 12x + 4)y + x - 6x + 13x - 12x + 4= 0 +-- Type: Equation Polynomial Integer +-- Time: 0.01 (IN) = 0.01 sec +factor lhs % +-- +-- +-- 2 2 2 +-- (9) (x - 2) (x - 1) (y + 1) +-- Type: Factored Polynomial Integer +-- Time: 0.50 (IN) + 0.09 (EV) + 0.30 (OT) = 0.89 sec +factorAndSplit eq +-- +-- +-- 2 +-- (10) [x - 2= 0,x - 1= 0,y + 1= 0] +-- Type: List Equation Polynomial Integer +-- Time: 0.09 (EV) + 0.21 (OT) = 0.30 sec +inv (eq :: EQ FRAC POLY INT) +-- +-- +-- 1 1 +-- (11) - ------------------------------------= - ---------------------- +-- 3 2 2 4 2 4 2 3 +-- (6x - 13x - 4)y - x - 13x + 12x (x - 12x)y - 6x + 4 +-- Type: Equation Fraction Polynomial Integer +-- Time: 0.03 (IN) = 0.03 sec +- % +-- +-- +-- 1 1 +-- (12) ------------------------------------= ---------------------- +-- 3 2 2 4 2 4 2 3 +-- (6x - 13x - 4)y - x - 13x + 12x (x - 12x)y - 6x + 4 +-- Type: Equation Fraction Polynomial Integer +-- Time: 0.01 (IN) + 0.01 (OT) = 0.02 sec + + +------------------------------------------------------------------- +-- bmt/09/29/92 coercion bug +-- fails with: +-- failed cannot be coerced to mode +-- (Record (: coef1 (Integer)) (: coef2 (Integer))) +-- fixed on 09/29/92 +------------------------------------------------------------------- +)clear all +(p,q):UP(x,INT) +p:=3*x**4+11*x**2-4 +q:=9*x**4+9*x**2-4 +myNextPrime: (INT,NNI) -> INT +myNextPrime(x,n)==nextPrime(x)$PRIMES(INT) +-- runs forever due to algebra bug in handling leading coefficients +modularGcd([p,q])$InnerModularGcd(INT,UP(x,INT),67108859,myNextPrime) + +------------------------------------------------------------------- +-- dewar/10/02/92 +-- actually, this was never wrong +------------------------------------------------------------------- +numeric(%e ** %pi) +--gives + (61) +-- 23.1406926327 7926900563 5493084578 4861294789 0532254433 2912200665 +-- 6744971913 2534837468 7163222983 2730035 + +------------------------------------------------------------------- +-- themos/10/07/92 +------------------------------------------------------------------- +)clear all +y:=operator 'y +deqx:=differentiate(y(x),x,2)+differentiate(y(x),x)+y(x) +solve(deqx,y,x) +solve(deqx,y,x=0,[1]) +deqt:=differentiate(y(t),t,2)+differentiate(y(t),t)+y(t) +solve(deqt,y,t) +solve(deqt,y,t=0,[1]) -- bug +deqz:=differentiate(y(z),z,2)+differentiate(y(z),z)+y(z) +solve(deqz,y,z) +solve(deqz,y,z=0,[1]) --bug + +------------------------------------------------------------------- +-- themos/10/07/92 equation +------------------------------------------------------------------- +)clear all +y:=operator 'y +deq:=D(y(x),x)+x**2=(y x)/x-(y x)**2 + + +------------------------------------------------------------------- +-- bmt/10/08/92 laplace +------------------------------------------------------------------- +)clear all +laplace(exp(-x**3)*x**7,x,s) + +------------------------------------------------------------------- +-- bmt/09/30/92 nonlinear ODE +------------------------------------------------------------------- +-- Any hope of solving the following which appeared in Barry +-- Simon's computer algebra test suite: +-- (Apparently it has Bernoulli form) +y:=operator 'y +x**2 * D(y x, x) + 2*x*(y x) - (y x)**3 = 0 +solve(%,y,x) + + +------------------------------------------------------------------- +-- sit/10/08/92 factor bug +------------------------------------------------------------------- +p:POLY FRAC INT := 3*(x+1) +-- is wrong (missing factor of 3). +factor(p)**2 + +------------------------------------------------------------------- +-- henderson/10/08/92 +------------------------------------------------------------------- +)clear all +--TextFile cliams that the operator readLineIfCan! returns "failed" when +--the end of the file is reached. In fact, I get a system error, which is +--not very useful: +--(16) ->readLineIfCan!(fp) +-- >> System error: +-- Unexpected end of #. +-- You are being returned to the top level of the interpreter. +fout:TextFile:=open("/tmp/foo","output") +write!(fout,"foo") +close!(fout) +fin:TextFile:=open("/tmp/foo","input") +readLineIfCan!(fin) +readLineIfCan!(fin) +close!(fin) +)lis (system "rm /tmp/foo") + +------------------------------------------------------------------- +-- bmt/10/08/92 factoring over SAEs +------------------------------------------------------------------- +)clear all +a | a**2+1 +(x+a)*(x+a+1) +factor % + +------------------------------------------------------------------- +-- miller/10/09/92 local vars in types +------------------------------------------------------------------- +)clear all +--Fixed (Victor's) bug with using local variables in type expressions +--assigned to local variables. It now gives a message and correctly uses +--interpret-only mode. +--The function changed was getAndEvalConstructorArgument from i-spec1.boot. + +------------------------------------------------------------------- +-- themos/10/19/92 +------------------------------------------------------------------- +)clear all +-- Do this in a virgin system +)set expose add constructor SquareMatrix +S2:= SquareMatrix(2,FRAC POLY INT); +V2: S2 := matrix([[v,-v],[-v,v]]); +I2: S2 := 1; +m:=5; +l: List(S2) := append(cons(V2+h*I2,_ + [(V2+2*h*I2) for i in 2 .. (m-1)]),_ + [V2+h*I2]) +A: SquareMatrix(m, S2) := diagonalMatrix(l) +-- did you get an error of deleteAssoc not defined ?? + +-- load definition of deleteAssoc +)li (load "/spad/obj/rios/interp/c-util") + +A: SquareMatrix(m, S2) := diagonalMatrix(l) +--now , can print. + +------------------------------------------------------------------- +-- bmt/10/19/92 squareFree bug +------------------------------------------------------------------- +-- has an extra factor of 2. +squareFree((2*x*y+1)*(x*y+1)**2) + +------------------------------------------------------------------- +-- bmt/10/19/92 division by zero error +------------------------------------------------------------------- +limit(atan(1/sin(x)),x=0) + +------------------------------------------------------------------- +-- bmt/10/19/92 limit problem +------------------------------------------------------------------- +)clear all +-- the left and right hand limits don't agree +limit(atan(-sin(x)/(cos(x)+e)),x=acos(-e)) +-- the left and right hand limits don't agree +limit(atan(1/(cos(x)+e)),x=acos(-e)) + +------------------------------------------------------------------- +-- grabmeier/10/19/92 unable to compute the determinant of an 8x8 +------------------------------------------------------------------- +)clear all +D := MATRIX FRAC(POLY INT) + + +d : (INT, Boolean) -> POLY INT +d(i,ss) == + ex := i rem 4 + if ex < 0 then ex := ex+4 + ss => + ex = 0 => 's + ex = 1 => 'sd + ex = 2 => 'sdd + 'sddd + ex = 0 => 1 + ex = 1 => 'd + ex = 2 => 'dd + 'ddd + + + +-- 1,d,dd,ddd,s,sd,sdd,sddd + +mTV4 : D := new(8,8,0) + +for i in 1..8 repeat + for j in 1..8 repeat + mTV4(i,j) := + i <= 4 => + j <= 4 => d(i+j-2, false) + d(-i+j,true) + j <= 4 => d(i+j-2,true) + d(-i+j,false) +mTV4 +gdd4 := determinant mTV4 + +------------------------------------------------------------------- +-- sutor/09/28/92 operator bug? +------------------------------------------------------------------- +)clear all +L n == + n = 0 => 1 + n = 1 => x + (2*n-1)/n * x * L(n-1) - (n-1)/n * L(n-2) +dx:=operator("D")::OP(POLY FRAC INT) +evaluate(dx,p+-> differentiate(p,'x)) +E n == (1-x**2)*dx**2-2*x*dx+n*(n+1) +L 15 +-- used to fail on this line +E 15 + +------------------------------------------------------------------- +-- bmt/10/12/92 EFSTRUC recursion problem +------------------------------------------------------------------- +)clear all +bug:=(1+x**(1/4))**(1/3)/(x**(1/2)) +-- gives a value stack overflow +integrate(bug,x) -- seems to go into infinite recursion in rischNormalize + +------------------------------------------------------------------- +-- james/10/28/92 coerce bug +------------------------------------------------------------------- +)clear all +-- improper character in Roman numeral: G +g::ROMAN + +------------------------------------------------------------------- +-- grabm/10/28/92 runs forever +------------------------------------------------------------------- +)clear all +-- this is quick +factor 1068303355883998767544567663620885466990173600 +-- but this runs forever +sqrt 1068303355883998767544567663620885466990173600 + + +------------------------------------------------------------------- +-- themos/11/05/92 fortran output bug +------------------------------------------------------------------- +)clear all +-- REAL T7,T6,T5,T4,T3,T2,T1 +-- T1=x*x +-- T2=2.*y**5 +-- T3=4.*T1 +-- T4=y**3 +-- T5=2.*T7 +-- T6=x**3 +-- T7=x**4 +-- R46=((T2+(T3+8.*x+8.)*T4+(T5+8.*T6+(-40.*T1))*y)*SIN(x)+(-T2+(-T3+ +-- &16.*x)*T4+(-T5+16.*T6)*y)*COS(x))/(y**8+4.*T1*y**6+6.*T7*y**4+4.*x +-- &**6*y*y+x**8) +-- T7 is referenced before it is defined +a1:=sin(x)/(x**2+y**2);a2:=D(a1,[x,y]);a2+D(a2,x) + +------------------------------------------------------------------- +-- grabm/11/05/92 +-- comment: +--I believe the "bug" is that the interpreter is converting gb which is +--a list of dmp style polynomials to a list of POLY type polynomials. +--Unfortunately the result of such a conversion is no longer a groebner basis. +--I don't see any reasonable way to prevent this, and would therefore have to +--classify this as "user error", when working with grobner bases, the user +--needs to force all his polynomials to be the appropriate type (thus having +--the correct ordering). +------------------------------------------------------------------- +-- expressing a symmetric functions in terms of elementary symm. functions +-- working in POLY INT is o.k. +R := FRAC INT +-- (1) Fraction Integer +lpx : List POLY R := [x1+x2+x3, x1*x2+x1*x3+x2*x3,x1*x2*x3] +-- (2) [x3 + x2 + x1,(x2 + x1)x3 + x1 x2,x1 x2 x3] +lip := [lpx.1-e3, lpx.2-e2, lpx.3-e1] +-- (3) [x3 + x2 + x1 - e3,(x2 + x1)x3 + x1 x2 - e2,x1 x2 x3 - e1] +gbp := groebner lip +-- (4) +-- 2 2 +-- [x3 + x2 + x1 - e3, x2 + (x1 - e3)x2 + x1 - e3 x1 + e2, +-- 3 2 +-- x1 - e3 x1 + e2 x1 - e1] +normalForm(x1**2+x2**2+x3**2,gbp) +-- 2 +-- (5) e3 - 2e2 +-- working in DMP is o.k. +dmp := DMP([x1,x2,x3,e1,e2,e3],INT) +-- (6) DistributedMultivariatePolynomial([x1,x2,x3,e1,e2,e3],Integer) +li : List dmp := [lpx.1-e1, lpx.2-e2, lpx.3-e3] +-- (7) [x1 + x2 + x3 - e1,x1 x2 + x1 x3 + x2 x3 - e2,x1 x2 x3 - e3] +gb := groebner li +-- (8) +-- 2 2 +-- [x1 + x2 + x3 - e1, x2 + x2 x3 - x2 e1 + x3 - x3 e1 + e2, +-- 3 2 +-- x3 - x3 e1 + x3 e2 - e3] +p:dmp:=(x1**2+x2**2+x3**2) +-- 2 2 2 +-- (9) x1 + x2 + x3 +normalForm(p,gb) +-- 2 +-- (10) e1 - 2e2 +-- but we have some problems (coercion? ordering?) here: +normalForm(x1**2+x2**2+x3**2,gb) +-- 2 2 2 +-- (11) 2x2 + (2x1 - 2e1)x2 + 2x1 - 2e1 x1 + e1 + + + + +------------------------------------------------------------------- +-- bmt/11/17/92 Ifintegrate +------------------------------------------------------------------- +--It seems that one cannot simply parametrize reducible curves. +--Any attempt at parametrization can only follow one branch. +--For curves of the form y**2=a**2*x**2+b*x+c, these are only reducible +--if a**2*x**2+b*x+c is a perfect square. Basically I think we need to +--choose 1 branch in this case. Under some circumstances we could +--try to proceed down both branches and then unify the result, but for +--the time being, perhaps we should just perform the substitution +--y=sqrt(a**2*x**2+b*x+c) whenever that is a perfect square. +--(then we don't even need to do any back subsitution or change to dx). +-- +--For another example, perhaps due to the same essential difficulty try +integrate(normalize(sqrt(1+cos(x)),x),x) +-- this gets a non-invertible error + +--I have fixed integrate(sqrt(1+cos(x)),x) and +--integrate(normalize(sqrt(1+cos(x)),x),x) +--fix was to function prootintegrate in INTPAF in intaf.spad + + +------------------------------------------------------------------- +-- james/02/11/93 integrate +-- used to give error: +-- No identity element for reduce of empty list using operation +-- max +------------------------------------------------------------------- +integrate(((-x-1)*log((x**2+x))**2+2*log(x))/(x+1),x) + +------------------------------------------------------------------- +-- dewar/02/15/93 +------------------------------------------------------------------- +)clear all +--i::Polynomial(Integer) +--%::Union(Symbol,Polynomial Integer) +--list % +-- +--this is a bug in old style union handling, this style of unions +--will become obsolete, so the suggested fix is to use tagged unions instead: +i::POLY INT +%::Union(s:Symbol, p:POLY INT) +list % -- works + +------------------------------------------------------------------- +-- grabm/03/04/93 +-- parser bug? not for system commands +------------------------------------------------------------------- +)clear all +-- gives error: Sorry, but no option begins with upd; +)load /spad/mnt/rios/algebra/EQ )upd; a:=1 +-- works +)load /spad/mnt/rios/algebra/EQ )upd ; a:=1 + +------------------------------------------------------------------- +-- bronstein/03/08/93 +------------------------------------------------------------------- +)clear all +I:=operator 'I +J:=operator 'J +eq := mu * D(I x,x) = - (K + S) * I(x) + S*J(x) +solve(eq,I,x) +--> wrong particular solution + +------------------------------------------------------------------- +-- dewar/03/16/93 +-- bug writing backslash to files +--comment: +--This is not a bug, what is written to the file is the lisp representation +--of the string "\\test" (since '\' is lisp escape character). +--The file is read and written using lisp primitives and thus the escape +--characters need to be doubled. This is consistent, since if you read the +--item back in from the file, the correct string is reconstituted. +-- +--If you want to create a text file which simply contains lines of text +--instead of lines of lisp strings, use: +--ofile : TextFile := open("test","output") ... +--then you will get a file of literal strings with no string delimiters and +--no escape characters. +------------------------------------------------------------------- +)clear all +ofile: File String := open("/tmp/test","output") +-- this writes "\\\\test" but should write "\\test" +write!(ofile,"\\test"::String) +close! ofile + +------------------------------------------------------------------- +-- themos/04/07/93 +-- this sometimes fails +-- comment: +--thanks for tracing down the problem. Basically the lines for monicizing +--the result need to be done before we try to +--retract back from the algebraic extension. +------------------------------------------------------------------- +)clear all +pol:DMP([x,y,z],PF(2)):=x**2*y**2+x**2*y*z+x**2*z**2+x*y*z**2+y**3*z+y*z**3 +factor pol + +------------------------------------------------------------------- +-- williamson/04/21/93 +-- comment: +--I ran into some problems when factoring polynomials over number fields. +--Evidently the interpretor doesn't choose the correct function 'factor'. +--It uses a function from MULTFACT, when it should be using a function from +--SAEFACT. +------------------------------------------------------------------- +)clear all +up := UP('w,FRAC INT) +p : up := w**4 + w**3 + w**2 + w + 1 +sae := SAE(FRAC INT,up,p) +q : UP('x,sae) := x**5 - 1 +factor q -- used to report: x**5-1 +saefact := SAEFACT(up,sae,UP('x,sae)) +factor(q)$saefact + +------------------------------------------------------------------- +-- grabm/04/30/93 +-- comment: +--This bug has been fixed at yorktown, in radix.spad, change line 163, the +--third line of intgroup to be: +-- empty? rest li => intToExpr first(li) +--and then recompile RADIX +------------------------------------------------------------------- +)clear all +-- results in 10 and not A +10::RadixExpansion(16) + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch (manuel bronstein) +------------------------------------------------------------------- +)clear all +r:=rule 'x == 1 +-- used to return x, now returns 1 +r x + +------------------------------------------------------------------- +-- ADK@scri.fsu.edu (tony kennedy) +------------------------------------------------------------------- +)clear all +factor(-12) +%**2 + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch (manuel bronstein) +-- >> Error: cannot retract nonconstant polynomial +------------------------------------------------------------------- +)clear all +complexNumeric(log(sqrt(-3))) + +------------------------------------------------------------------- +-- quitte@knuth.univ-poitiers.fr/8/15/93 (Claude Quitte) +------------------------------------------------------------------- +)clear all +--)abbreviation package TEST Test +-- +--Test() : with +-- +-- leftProductBy : Integer -> (Integer -> Integer) +-- rightProductBy : Integer -> Mapping(Integer, Integer) +-- +-- == add +-- +-- leftProductBy(n) == n * #1 +-- +-- rightProductBy(n : Integer) : Mapping(Integer, Integer) == #1 * n +-------------------------------------------------------------------------- +-- +--Why is it impossible to specify the target/cible types for the +--functions leftProductBy and rightProductBy in the body of the package ??? +-- +--The code for leftProductBy is correct but the code for rightProductBy +--troubles the compiler !!!! It seems to compile a LOCAL function with +--ANOTHER signature. +-- +-------------------------------------------------------------------------- +-- initializing NRLIB TEST for Test +-- compiling into NRLIB TEST +-- compiling exported leftProductBy : Integer -> Integer -> Integer +--Time: 0.35 SEC. +-- +-- compiling local rightProductBy : Integer -> Integer +--****** comp fails at level 2 with expression: ****** +--error in function rightProductBy +-- +--****** level 2 ****** +--$x:= #1 +--$m:= $EmptyMode +--$f:= +--((((|n| # #) (|rightProductBy| # # #) (|n| #) (|rightProductBy| # # #) ...))) +-- +-- >> Apparent user error: +-- no mode found for +-- #1 +-- You are being returned to the top level of the interpreter. +------------------------------------------------------------------------ +-- answer (barry): +-- +--Your problem in TEST about specifying target types which are Mapping's +--was a bug in the compiler and has been fixed for Axiom release 2.0. +-- + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/10/6/93 (Manuel Bronstein) +------------------------------------------------------------------- +)clear all +--Here is algfunc.spad with an old bug fixed: eventh-roots of negative floats +--coerced to EXPR FLOAT (e.g. sqrt(-1::EXPR FLOAT)) used to produced an error +--message since the sqrt from FLOAT was called. +--I have now fixed iroot from AF(R,) +--to call the sqrt from R only if either R is algebraically closed, or the +--root is odd, or the argument is positive. Here's the new behaviour: +sqrt(-1::EXPR FLOAT) +sqrt(2::EXPR FLOAT) +nthRoot(-2::EXPR FLOAT, 3) +nthRoot(-2::EXPR FLOAT, 4) +--As a side-effect, this fixes the problem with numeric +-- (which was instantiating sqrt(-1)$EXPR(FLOAT)). + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/10/6/93 (Manuel Bronstein) +------------------------------------------------------------------- +)clear all +--Here is an updated efstruc.spad where ker2trigs now knows about abs. +real abs(4 + %i * 5) -- does the right thing. + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/10/5/93 (Manuel Bronstein) +------------------------------------------------------------------- +)clear all +--Here is again an enhanced elemntry.spad. What happens now is that +exp(q * %i * %pi) +--gets automatically simplifed whenever q is a rational number whose +--denominator is one of {1,2,3,4,6}. +exp(5/3*%i*%pi) + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/10/4/93 (Manuel Bronstein) +-- luczak@nag.com (Richard Luczak) +------------------------------------------------------------------- +)clear all +exp(log(-1)) +sum((-1)**k * (k+m),k=0..n) + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/10/4/93 (Manuel Bronstein) +------------------------------------------------------------------- +)clear all +--simplifies (abs now checks quotients instead of just retraction to R). +abs((1/2)::EXPR(INT)) + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/10/4/93 (Manuel Bronstein) +------------------------------------------------------------------- +)clear all +integrate(1/(x**2 + %i*a),x) + +------------------------------------------------------------------- +-- bmt@spadserv.watson.ibm.com/9/28/93 (Barry Trager) +------------------------------------------------------------------- +)clear all +limit(1/2**n,n=%plusInfinity) + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/9/22/93 (Manuel Bronstein) +------------------------------------------------------------------- +)clear all +--Here is an update to efstruc.spad that handles complex constants much better. +--Negative square roots and negative logs are now recognized as complex and +--treated properly by real?, real, imag, and complexForm: +x := sqrt(-3) + sqrt 2 + sqrt(- exp a) + log(-a**2-1) +real? x +real x +imag x +--As a result, integrals involving sqrt(-2) etc... are now treated correctly +--(this was the case only for sqrt(-1) with the older version). + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/9/22/93 (Manuel Bronstein) +------------------------------------------------------------------- +)clear all +-->> haha := rule x*x == z +-->> haha(a*a + b*b + c**2) --> 3z +-->> haha(a*a + b*b + c**2 + d*d) --> z +-->> +-->> the bug is that the last line returns z instead of 4z. +-- +--Sorry guys, this is not a bug: haha is so general a rule that it matches +--the integer 4 (as 2 squared), so the rewrite chain for the last example is: +-- +--a*a + b*b + c**2 + d*d ---> z + z + z + z = 4 * z ---> z * z ---> z +-- +--Here is a console showing what exactly happens: +haha := rule x*x == z +haha 4 +haha 3 +haha(4*z) +haha(3*z) +--To see the whole rewrite chain: +a*a + b*b + c**2 + d*d +applyRules([haha], %, 1)$APPRULE(INT,INT,EXPR INT) +applyRules([haha], %, 1)$APPRULE(INT,INT,EXPR INT) +applyRules([haha], %, 1)$APPRULE(INT,INT,EXPR INT) +--I think it's actually the proper behavior for the pattern matcher. This +--example shows that rules can bite, something Mma users are quite aware about! + +------------------------------------------------------------------- +-- dewar/9/16/93 (mike dewar) +------------------------------------------------------------------- +--There's an odd discontinuity about the behaviour of the following +--function: + +harm(1) == 1 +harm(n) == harm(n-1) + 1/n +harm : Integer -> Fraction Integer +harm(1023) -- takes a little while, as expected +harm(1024) -- takes forever? + +------------------------------------------------------------------- +-- williams@inf.ethz.ch/9/1/93 (Clifton Williamson) +------------------------------------------------------------------- +--> we should probably support integrate(%,x) on series types. +--> x could be either the variable of expansion or a parameter variable. +-- +--We've discussed this before with regard to the function 'differentiate'. +--The technical problem is that "generalized" power series may have +--"coefficients" involving the series variable: +series(x**x,x=0) +--In this case, as currently implemented, 'differentiate' returns incorrect +--answers: +)set mess test off +differentiate % +)set mess test on +--The solution we discussed (perhaps "resolution" is a better word) was to +--create a separate series type for generalized series. This would be a +--carbon copy of UPXS, except that differentiate(series,variable(series)) and +--integrate(series,variable(series)) would return an error message. The +--error message could also suggest that the user first apply 'approximate', +--then compute a derivative or integral. We would also have a coercion from +--UPXS to this type. The function 'series' would return a UPXS, when the +--coefficients do not involve the series variable, and a "generalized series", +--when the coefficients involve the series variable. +-- +--If this sounds cool to you, I'll go ahead with it when I have time. (I'm +--trying to meet a 16 September deadline for a MEGA '94 submission. I'm still +--getting my results together, so time is tight. Let me know if there is a +--time deadline for the AXIOM code!) +-- +--> Also we need better tools for taking finite truncations of series objects. +--> In particular since we now mostly use series(expr,var) to create a series, +--> UPXS if over a coefficient domain which supports the symbol of expansion, +--> should be able to truncate a series to an EXPR. +-- +--I thought I had you on this one! The signature is there (in pscat.spad): +-- +-- if Coef has coerce: Symbol -> Coef then +-- if Coef has "**":(Coef,Expon) -> Coef then +-- approximate: ($,Expon) -> Coef +-- ++ \spad{approximate(f)} returns a truncated power series with the +-- ++ series variable viewed as an element of the coefficient domain. +-- +--It certainly works for Laurent series: +laurent(cos(a+x)/x,x=0) +approximate(%,3) +--But, unfortunately, I never implemented it for Puiseux series: +puiseux(cos(a+x)/x,x=0) +approximate(%,3) +series(cos(x**(2/3) + a),x=0) +approximate(%,2) +approximate(%% 1,7/5) + + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/10/6/93 (manuel bronstein) +------------------------------------------------------------------- +)clear all +)set message type off + +-- Here is algfunc.spad with an old bug fixed: eventh-roots of negative floats +-- coerced to EXPR FLOAT (e.g. sqrt(-1::EXPR FLOAT)) used to produced an error +-- message since the sqrt from FLOAT was called. +-- I have now fixed iroot from AF(R,) +-- to call the sqrt from R only if either R is algebraically closed, or the +-- root is odd, or the argument is positive. Here's the new behaviour: +sqrt(-1::EXPR FLOAT) +sqrt(2::EXPR FLOAT) +nthRoot(-2::EXPR FLOAT, 3) +nthRoot(-2::EXPR FLOAT, 4) +--As a side-effect, this fixes the problem with numeric +-- (which was instantiating sqrt(-1)$EXPR(FLOAT)). + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/9/22/93 (manuel bronstein) +------------------------------------------------------------------- +)clear all +--Here is a (rather major) bug fix to ffactor in FSUPFACT.NRLIB. It causes +--a large family of integrals to return 0, because ffactor(?**2+expr) returned +--?**2 when expr involved a parameter. This is fixed now. + +------------------------------------------------------------------- +-- jhd@maths.bath.ac.uk/8/15/93 James Davenport +------------------------------------------------------------------- +)clear all +integrate(1/(x*(log(x)**2+a**2-1)),x) +-- (1) +-- VCONCAT +-- log(x) +-- atan(---------) +-- +------+ +-- | 2 +-- 2 \|a - 1 +-- ((- a + 1<0) -> ---------------) +-- +------+ +-- | 2 +-- \|a - 1 +-- , +-- PAREN +-- 2 +-- (- a + 1>0) +-- -> +-- +--------+ +-- 2 2 | 2 2 +-- log((log(x) - a + 1)\|- a + 1 + (2a - 2)log(x)) +-- + +-- 2 2 +-- - log(log(x) + a - 1) +-- / +-- +--------+ +-- | 2 +-- 2\|- a + 1 +-- , +-- 1 +-- ( Or (a - 1=0) -> - ------) +-- (a + 1=0) log(x) +-- Type: ConditionalExpression Integer +-- +--is still fairly ugly. + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/8/9/93 (manuel bronstein) +------------------------------------------------------------------- +)clear all +--Here is efstruc.spad with a change to normalize so that +normalize(2**(1/2) + 2**(1/4)) now returns 2**(1/4) ** 2 + 2**(1/4). + + +------------------------------------------------------------------- +-- satoshi@yktvmv.vnet.ibm.com/8/7/93 satoshi hamaguchi +------------------------------------------------------------------- +)clear all +-- In axiom, both + integrate(%e**x,x=0..1) +--and + integrate(log(x),x=1..2) +--yield a warning potentialPole . +--If I use "noPole", they give right answers. Isn't this a bug? +--... Satoshi + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/8/5/93 (manuel bronstein) +------------------------------------------------------------------- +)clear all +simplify(2**(1/3)*2**(1/2)) -- will return 2**(5/6). + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/8/4/93 (manuel bronstein) +------------------------------------------------------------------- +)clear all +integrate(1/sqrt(1+cos(x)), x) + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/8/4/93 (manuel bronstein) +------------------------------------------------------------------- +)clear all +normalize atan(cos(x)/sin(x)) -- used to be division by 0 error + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/8/4/93 (manuel bronstein) +------------------------------------------------------------------- +)clear all +a := 2**(1/6) +[a**n for n in 2..13] + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/8/4/93 (manuel bronstein) +------------------------------------------------------------------- +)clear all +int:=sqrt(a*(1-u**2)/(1+u**2))/u +integrate(eval(int,a=1),u) -- works +integrate(eval(int,a=sqrt(-1)),u) -- seems to run forever +integrate(eval(int,a=1)*(-1)**(1/4),u) -- dies after a long time + -- with an elt index error. + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/8/4/93 (manuel bronstein) +------------------------------------------------------------------- +)clear all +sqrt((1-x**2)*(1-k**2*x**2)) +integrate(x/%,x) + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/7/26/93 (manuel bronstein) +------------------------------------------------------------------- +)clear all +rad:=last zerosOf((2+y)**8-3,y) +k:=first kernels % +eval(rad,k,rad) + +------------------------------------------------------------------- +-- nagttt@vax.ox.ac.uk/7/15/93 themos tsikas +------------------------------------------------------------------- +)clear all +f := (x - y) / (x + y) +eval(f,x=1/x) + +------------------------------------------------------------------- +-- nagttt@vax.ox.ac.uk/7/15/93 themos tsikas +------------------------------------------------------------------- +)clear all +digits 200 +--I claim that these two should give the same result (they do in Reduce): +--(precision was 200) +a:=4*sin(2*%pi/9)*sin(5*%pi/9)/sqrt(3) +b:=1/(2*sin(%pi/9)) +a::EXPR FLOAT +b::EXPR FLOAT + +------------------------------------------------------------------- +-- bmt@spadserv.watson.ibm.com/9/15/93 (Barry Trager) +------------------------------------------------------------------- +)clear all +limit(tanh(x),x=%plusInfinity) + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/6/14/93 (manuel bronstein) +------------------------------------------------------------------- +)clear all +a := x::EXPR INT +b := x::EXPR COMPLEX INT +zeroOf(a**4+1,x) +zeroOf(b**4+1,x) + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/6/11/93 (manuel bronstein) +------------------------------------------------------------------- +)clear all +normalize(0**a) -- now returns 0 (was crashing before) + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/6/11/93 (manuel bronstein) +------------------------------------------------------------------- +)clear all +- new export complexForm(f) which returns the rectangular complex form of f: +log(a+%i * b) +complexForm % +complexIntegrate(1/(x-%i),x) +complexForm % + +------------------------------------------------------------------- +-- jcf@posso.ibp.fr +------------------------------------------------------------------- +-- normalForm est faux pour les polynomes a coef dans un anneau: +D:=DMP([a,b],INT) +l:List D:=[2*a-1,b-a] +g:=groebner l +p:D:=a +normalForm(p,g) +-- was 1 +-- au lieu de 1/2 !! + +------------------------------------------------------------------- +-- nagttt@vax.ox.ac.uk/6/9/93 themos tsikas +------------------------------------------------------------------- +)clear all +squareFreePart(50) + +------------------------------------------------------------------- +-- mcd@maths.bath.ac.uk/6/4/92 mike dewar +------------------------------------------------------------------- +)clear all +f:=complexIntegrate(1/((x-%i)*(x-2*%i)),x) +g:=subst(f,x=1) +imag g + +------------------------------------------------------------------- +-- daly +------------------------------------------------------------------- +)clear all +-- not wrong but the order is obscure... +primes(1,10) + +------------------------------------------------------------------- +-- nagttt@vax.ox.ac.uk/1/11/93 themos tsikas +------------------------------------------------------------------- +)clear all +m:=matrix[[1,a,0],[b,0,a],[0,b,c]] +ll:=radicalEigenvectors m +-- ends in error: +-- Internal system problem in function appInfix : fewer than 2 arguments to +-- an infix function +-- +-- but this works +ll 1 +ll 2 +ll 3 + + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/11/24/93 Manuel Bronstein +------------------------------------------------------------------- +--)clear all +--Here's a bug that appears with the )math option only. +-- +--)tr MATRIX )ops determinant )math +-- +-- Parameterized constructors traced: +-- MATRIX +-- this integrate is commented out since it runs forever (at least many hours) +--integrate(sqrt(1/x+1)*sqrt(x)-sqrt(x+1),x) +--1 +--> I suspect that this is an example of the same thing - but it looks +--> worse: +--> +--> (145) ->X := log(0.7*%i*x) +--> +--> >> Error detected within library code: +--> negative root +--> +--> Mike +--> + + +------------------------------------------------------------------- +-- sutor@yktpub.watson.ibm.com/12/15/93 (Robert S. Sutor) +------------------------------------------------------------------- +)clear all +--enter Integer in input box +--choose domains +--choose Description +--click on Convertible(String) +-- +--page cannot be formatted + +------------------------------------------------------------------- +-- bmt@posso.dm.unipi.it12/15/93 (barry trager) +------------------------------------------------------------------- +)clear all +log2() --> Float +exp1() --> DoubleFLoat ??? + + +------------------------------------------------------------------- +-- quitte@knuth.univ-poitiers.fr/12/14/93 Claude Quitte +------------------------------------------------------------------- +)clear all +--There is a bug in the function delete_! for the type List ; this function, +--has two arguments, a list L and an integer n : delete_!(L, n) returns +--a list L with the n nth-item deleted, MODIFYING its argument L. +-- +--But for n = 1, the argument L is not MODIFIED !!! (exactly for n = +--minIndex(L)). An extract of the package ListAggregate (abbreviation LSAGG, +--file aggcat.spad). +-- +-- +---------------------------------------------------------------------- +--ListAggregate(S:Object): Category == Join(StreamAggregate S, +-- FiniteLinearAggregate S, ExtensibleLinearAggregate S) with +-- list: S -> $ +-- ++ list(x) returns the list of one element x. +-- add +-- .......... +-- +-- delete_!(x:$, i:I) == +-- i < (m := minIndex x) => error "index out of range" +-- i = m => rest x ****** <- here is the error +-- y := rest(x, (i - 1 - m)::N) +-- setrest_!(y, rest(y, 2)) +-- x +-- +--A little session : +-- +L : List(String) := ["There is", "it seems", "a real bug", "here"] +-- (1) ["There is","it seems","a real bug","here"] +-- Type: List String +-- +L1 := delete!(L, 1) +-- (2) ["it seems","a real bug","here"] +-- Type: List String +L +-- (3) ["There is","it seems","a real bug","here"] +-- Type: List String +-- +L2 := delete!(L, 2) +-- (4) ["There is","a real bug","here"] +-- Type: List String +L +-- (5) ["There is","a real bug","here"] +-- +--Is there a way to fix this bug quickly ?? (I am ready to modify the source +--Axiom aggcat.spad). +--The problem with ! functions lies in the documentation not in the code. We +--need to explain more clearly that ! functions are ALLOWED to update their +--arguments, not REQUIRED to do so. +--Whenever using ! functions you should always +--use the returned result, not try to use the updated argument. This is how +--the code is designed. +--For example if you try to do insert! into an empty list, +--the argument is not updatable and thus a new list is created. The reason for +--having ! operations is for efficiency to do less copying, not to guarantee +--that given arguments will always be updated. So the correct use is to only +--depend on the results returned by updating functions. + + +------------------------------------------------------------------- +-- quitte@knuth.univ-poitiers.fr/1/13/94 Claude Quitte +------------------------------------------------------------------- +)clear all +K := Fraction(Integer) +PolK := UP('X, K) +X : PolK := monomial(1, 1) +n : PositiveInteger := 15 +E := SimpleAlgebraicExtension(K, PolK, X**n + X**(n-3) -1) +y : E := X::E +minimalPolynomial(y)$E +-- +--Internal Error +--The function minimalPolynomial with signature SimpleAlgebraicExtension( +--Fraction Integer,UnivariatePolynomial(X,Fraction Integer),X**15+X**12-1) +---> UnivariatePolynomial(X,Fraction Integer) is missing from domain +--SimpleAlgebraicExtension(Fraction (Integer)) +--(UnivariatePolynomial X (Fraction (Integer)))((15 1 . 1) (12 1 . 1) (0 -1 . 1)) + +------------------------------------------------------------------- +-- luczak@nag.com/02/20/94 (Richard Luczak) +------------------------------------------------------------------- +)clear all +-- +--I'm trying to define the following rule +-- +tr := rule cos(x)**(n | integer? n and even? n)==(1-sin(x)**2)**(n/2) +-- +--Axiom returns +-- +-- Cannot find a definition or library operation named even? with argument +-- types +-- Expression Integer +-- +-- We will attempt to step through and interpret the code. +-- +-- n +-- - +-- n 2 2 +-- (2) cos(x) == (- sin(x) + 1) +-- Type: RewriteRule(Integer,Integer,Expression Integer) +-- +-- +--and henceforth the rule does not work as desired. Variations on the same bug +--occur involving positive?. Of course, I get what I want using integer?(n/2) +--but ... Is this a bug? +-- +-- from barry: +-- +--Should use integer? n and even? integer n instead. +-- +--I toyed with the idea of implementing: +-- even? x == integer? x and even? integer x +-- odd? x == integer? x and odd? integer x +--in EXPR, but this would mean that (x +-> even? x or odd? x) is not always +--true anymore and I'm not sure it's a good idea. If you guys don't think it's +--a problem, it takes 2 minutes to add it to EXPR R when R has RETRACT INT +--(don't use integer? but retractIfCan@Union(Integer, "failed")). + +------------------------------------------------------------------- +-- copper@yktvmv.vnet.ibm.com/02/22/94 don coppersmith +------------------------------------------------------------------- +)clear all +--Questions that came up using Axiom on Aixproj: +-- +--How does one find a Pade approximation? I tried pade(2,2,y) +--pade(y,2,2) Pade(2,2,y) PadeApproximation(2,2,y) +--(where y is a series in x) to no avail. +-- +--Complaint: The error message +-- +-- Could not find library function "pade" with arguments +-- (integer, integer, series). +-- +--is misleading. If it can't find any "pade", then say +-- +-- Could not find library function "pade". +-- +--If there is such a function, but I've got the arguments wrong, +--why not say +-- +-- The library function "pade" takes arguments +-- (series, integer, integer) +-- +--or at least make that information available somehow. +-- +-- from bob sutor: +-- +--Don, +-- Try using )what op pade to see what is available. This will give +--you all operations with "pade" in their names. You can also search for +--*pade* via the HyperDoc Browse utility. If you don't use Browse, following +--up with, say, )display op pade, will give you a more information, though +--it is badly formatted (I will look at that). +-- +--Aixproj is back-level, so I'm not sure exactly what is up their +--relative to the current system. +-- +--I agree we could use better messages regarding unknown functions +--and I will look at that. +-- Bob +-- +-- from bob sutor: +-- +--The pade operation requires a taylor series as its third object while +--"series" returns a UnivariatePuiseuxSeries. If you set +-- y := taylor(1+x)**(1/5) +--then things work. You can also do +-- pade(1,1,y :: UTS(EXPR INT, x, 0) ) +--but this is more work if you really have a Taylor series. +-- +--This is unintuitive and there should be a "pade" for Puiseux series that +--fails if the series is not appropriate. Barry? I will now look at adding +--a bit more coercion support to the interpreter to allow Puiseux series +--to possibly retract to Laurent series and then possibly to Taylor series. +-- +--Don, +-- I added the retractions I mentioned before to the development system. +--When the system is unsuccessful in matching a UnivariatePuiseuxSeries +--to an operation, it will first try to retract it to a +--UnivariateLaurentSeries. If that fails still, it will try to retract to +--a UnivariateTaylorSeries. +-- +-- Be aware that this sort of thing happens when you are evaluating +--an expression. If you are defining a function, you should add +--explicit coercions or create objects of the correct type for +--efficiency. You function may still work, but it may not run in +--a compiled form. + +------------------------------------------------------------------- +-- barry@num-alg-grp.co.uk/02/24/94 Barry Trager +------------------------------------------------------------------- +)clear all +sqrt(2)*2.0 -- fails +sqrt(2)::EXPR INT * 2.0 -- works + +-- tpd: this now fails with sample : () -> Reference Integer is missing +-- from domain: Integer +-- Internal Error + + +------------------------------------------------------------------- +-- bronstei@inf.ethz.ch/02/28/94 Manuel Bronstein +------------------------------------------------------------------- +)clear all +f := exp(exp(x)*exp(1/exp(x))) / exp exp x +--)tr LIMITPS )math +--)tr DFINTTLS )math +--)tr DFINTTLS_;findLimit +-- the following exits back to the shell after limit returns "failed": +computeInt(first tower f, f, 0, %plusInfinity, false)$DFINTTLS(INT, EXPR INT) + +------------------------------------------------------------------- +-- jhd@maths.bath.ac.uk/03/02/94 James Davenport +------------------------------------------------------------------- +)clear all +--I've fixed coercions of List and Vector to DirectProduct. +--You can now do things like +[1,2,3] :: DirectProduct(3, Fraction Integer) +-- +--I also fixed coercions from Vector to List, which seems to have +--been removed via a library change. + +------------------------------------------------------------------- +-- jhd@maths.bath.ac.uk/03/09/94 James Davenport +------------------------------------------------------------------- +)clear all +-- used to give a lisp error +x**10+1::Polynomial PrimeField 2 + +------------------------------------------------------------------- +-- themos@num-alg-grp.co.uk/03/11/94 Themos Tsikas +------------------------------------------------------------------- +)clear all +f(x)==x**2 +draw(f,-1..1) + +------------------------------------------------------------------- +-- themos@num-alg-grp.co.uk/03/16/94 Themos Tsikas +------------------------------------------------------------------- +)clear all +--The problem was that nobody was around to catch the coerceOrCroaker. +--Just comment out the first line of intCodeGenCoerce1 in i-code.boot +--(the one with the explicit THROW). Bothe the riemannSphereDraw and JHD's +--original example will then work. -- bob sutor +)read conformal +riemannSphereDraw(1..2,0..%pi,4,4,"polar") + + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} -- cgit v1.2.3