-----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-----