> < ^ From:

> ^ Subject:

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