John, apologies for the late reply.
Thanks for giving the road map of how to tackle that thing in SAGE. I am very sure if I can do that since I am real newbie to SAGE, but I will give it a try when I have the time. Maybe during the weekend. Thank you very much. Best wishes, J. On 03.09.2008 12:12, John Cremona wrote: > That is a good question. > > Sage's number fields get their units and regulator by calling the > corresponding functions in the pari library. As far as I can see the > pari library does not have a function to compute th regulator of an > arbitrary set of units. It would not be hard to implement this in > Sage. > > The ingredients you need are: > * K.complex_embeddings() gives all the embeddings of K into CC (the > complex numbers). > You would need to eliminate one of ecah conjugate pair of embeddings. > > TODO: implement a flag to complex_embeddings() which only gives one of > each pair. > > * Now just evaluate the embeddings on your units, take logs, construct > the appropriate matrix of those and find its determinant. > > * To find the index of your units, divide their regulator by the > field's regulator. > > I have skated over some details, like what to do if the number of your > units is different from the unit rank. > > Harder TODO: given any unit and a Z-basis for the units, express your > unit as a Z-linear combination of the generators. > > If that was implemented, then the answer to your original question > would be a simple matter of finding the determinant of an integer > matrix. > > These are all things which it would be good to have implemented in > Sage. Feel free to do so and submit a patch! > > John Cremona > > 2008/9/3 Jannick Asmus <[EMAIL PROTECTED]>: >> Dear All, >> >> suppose that K is a number field and U the group of units in the maximal >> order of K. Then the rank r of U, i.e. the rank r of the free group U_f= >> U/Tor(U) (where Tor(U) denotes the group of torsion elements in U) is >> given by Dirichlet's unit theorem. Clearly r is the dimension of the >> Q-vector space U_Q = U (x)_Z Q. >> >> Sage gives a basis of U_Q (sage: K.units()). >> >> Now given r units u_1,...,u_r how can it be tested that the u's generate >> U_Q - or are linearly independent over Q? >> >> If the structure of U_Q was additive, this might not be a problem for >> SAGE as it is a standard problem in linear algebra boiling down to >> calculate a determinant. But how to tackle this problem when the >> structure of the Q-vector space is multiplicative, at least in notation. >> >> Alternatively we could consider the quotient group U/(u_1,...,u_r) and >> test if it is of finite order. >> >> Thanks for any help. >> >> Please do not hesitate to ask for more information if something is >> unclear or needs more information. >> >> Best wishes, >> J. --~--~---------~--~----~------------~-------~--~----~ 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/sage-support URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---
