> < ^ Date: Tue, 21 Mar 1995 02:56:00 -0500
> < ^ From: Lewis McCarthy <lmccarth@klingon.cs.umass.edu >
> ^ Subject: Products of Elements of Different Fields
-----BEGIN PGP SIGNED MESSAGE-----

I haven't seen this phenomenon mentioned in the GAP Forum, so I'm hoping
this isn't old news. While experimenting with the possibilities of creating
elements of "unusual" domains in GAP, I've noticed a small bug in the code
for Rationals.operations.AlgebraicExtensionElmOps.\*:

(This is in GAP v3r4p1)

gap> Q := Rationals; Q.name := "Q"; x := Indeterminate(Q); x.name := "x";
Rationals
"Q"
X(Q)
"x"
gap> a := RootOf(x^3 + x + 1);
RootOf(x^3 + x + 1)
gap> b := RootOf(x^5 - x^2 + 1);
RootOf(x^5 - x^2 + 1)
gap> a * b;
Segmentation fault (core dumped)

I think I have figured out why this happens. In the aforementioned routine,
this is what happens when the elements to be multiplied lie in different
domains:

elif a.domain <> b.domain then
return a.operations.\*( a, b );

I'm not sure what the intent of this particular line was, but it seems
bound to lead to an infinite recursion whenever it's reached. So I presume
the procedure call stack is overflowing, causing the segmentation fault.

Until the implementation of multiple extensions is ready, perhaps the above
lines should actually read:

elif a.domain <> b.domain  then
    Error("<a> and <b> lie in no common domain");

Take care
-L. Futplex McCarthy <lmccarth@cs.umass.edu>

-----BEGIN PGP SIGNATURE-----
Version: 2.6.2

iQCVAwUBL26GVWf7YYibNzjpAQFzSwQAoXnY5u/uLxhQKIlnWnngMQvJ+FehlBhZ
1SK/f4ujndokTcqEiaEZ+UuottsmfFJ1+4r3EQsI8yw2c9vphU1t4lcquLfy/gcW
r+vIjaWowjFGtdr5c5cQqH3ZYI2kBzkamaNJ42GV+w7g7BIhDF2Lfdpp8ptzwbzL
P2+yfzJQxFQ=
=e/OD
-----END PGP SIGNATURE-----


> < [top]