Ralf, after your commit tests in 'ideal.input.pamphlet' fail.
Explicit package calling can resolve the problem.
Attached is a patch that would make ideal.input run without problems on
trunk@1329.
The question is whether we want to solve the problem in this way or
revert my resent commits.
I am rather for package calling since I believe that my commits actually
fixed an issue of incompatible types in SPAD. The problem is in the
interpreter, methinks.
In a SPAD program one has to import from IdealDecompositionPackage
anyway (or package call). In the interpreter it's a nuisance to juggle
with the types, but in this case I think, it's a minor one and as in
some other places one can simply argue that the interpreter doesn't
understand what the user wants and thus a package call is necessary to
help the interpreter.
May I commit the attached patch?
Ralf
(1) -> )r ideal.input
--Copyright The Numerical Algorithms Group Limited 1994.
)clear all
All user variables and function definitions have been cleared.
(n,m) : List DMP([x,y],FRAC INT)
Type: Void
m := [x^2+y^2-1]
2 2
(2) [x + y - 1]
Type:
List(DistributedMultivariatePolynomial([x,y],Fraction(Integer)))
n := [x^2-y^2]
2 2
(3) [x - y ]
Type:
List(DistributedMultivariatePolynomial([x,y],Fraction(Integer)))
id := ideal m + ideal n
2 1 2 1
(4) [x - -,y - -]
2 2
Type:
PolynomialIdeal(Fraction(Integer),DirectProduct(2,NonNegativeInteger),OrderedVariableList([x,y]),DistributedMultivariatePolynomial([x,y],Fraction(Integer)))
zeroDim? id
(5) true
Type:
Boolean
zeroDim?(ideal m)
(6) false
Type:
Boolean
dimension ideal m
(7) 1
Type:
PositiveInteger
(f,g):DMP([x,y],FRAC INT)
Type: Void
f := x^2-1
2
(9) x - 1
Type:
DistributedMultivariatePolynomial([x,y],Fraction(Integer))
g := x*(x^2-1)
3
(10) x - x
Type:
DistributedMultivariatePolynomial([x,y],Fraction(Integer))
relationsIdeal [f,g]
2 3 2 2 3
(11) [- %B + %A + %A ] | [%A= x - 1,%B= x - x]
Type:
SuchThat(List(Polynomial(Fraction(Integer))),List(Equation(Polynomial(Fraction(Integer)))))
l: List DMP([x,y,z],FRAC INT)
Type: Void
l:=[x^2+2*y^2,x*z^2-y*z,z^2-4]
2 2 2 2
(13) [x + 2y ,x z - y z,z - 4]
Type:
List(DistributedMultivariatePolynomial([x,y,z],Fraction(Integer)))
ID3==>IdealDecompositionPackage([x,y,z])
Type: Void
ld:=primaryDecomp(ideal l)$ID3
1 2 1 2
(15) [[x + - y,y ,z + 2],[x - - y,y ,z - 2]]
2 2
Type:
List(PolynomialIdeal(Fraction(Integer),DirectProduct(3,NonNegativeInteger),OrderedVariableList([x,y,z]),DistributedMultivariatePolynomial([x,y,z],Fraction(Integer))))
reduce(intersect,ld)
1 2 2
(16) [x - - y z,y ,z - 4]
4
Type:
PolynomialIdeal(Fraction(Integer),DirectProduct(3,NonNegativeInteger),OrderedVariableList([x,y,z]),DistributedMultivariatePolynomial([x,y,z],Fraction(Integer)))
reduce(intersect,[radical(ld.i)$ID3 for i in 1..2])
2
(17) [x,y,z - 4]
Type:
PolynomialIdeal(Fraction(Integer),DirectProduct(3,NonNegativeInteger),OrderedVariableList([x,y,z]),DistributedMultivariatePolynomial([x,y,z],Fraction(Integer)))
radical(ideal l)$ID3
2
(18) [x,y,z - 4]
Type:
PolynomialIdeal(Fraction(Integer),DirectProduct(3,NonNegativeInteger),OrderedVariableList([x,y,z]),DistributedMultivariatePolynomial([x,y,z],Fraction(Integer)))
quotient(ideal l,y)
2
(19) [x,y,z - 4]
Type:
PolynomialIdeal(Fraction(Integer),DirectProduct(3,NonNegativeInteger),OrderedVariableList([x,y,z]),DistributedMultivariatePolynomial([x,y,z],Fraction(Integer)))
(20) ->
--
You received this message because you are subscribed to the Google Groups "FriCAS -
computer algebra system" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/fricas-devel?hl=en.
diff --git a/src/input/ideal.input.pamphlet b/src/input/ideal.input.pamphlet
index 18b6d38..a6fbce0 100644
--- a/src/input/ideal.input.pamphlet
+++ b/src/input/ideal.input.pamphlet
@@ -30,10 +30,11 @@ g := x*(x^2-1)
relationsIdeal [f,g]
l: List DMP([x,y,z],FRAC INT)
l:=[x^2+2*y^2,x*z^2-y*z,z^2-4]
-ld:=primaryDecomp ideal l
+ID3==>IdealDecompositionPackage([x,y,z])
+ld:=primaryDecomp(ideal l)$ID3
reduce(intersect,ld)
-reduce(intersect,[radical ld.i for i in 1..2])
-radical ideal l
+reduce(intersect,[radical(ld.i)$ID3 for i in 1..2])
+radical(ideal l)$ID3
quotient(ideal l,y)
@
\eject