question on converting a decimal back into an algebraic number

American Citizen <[email protected]>
Newsgroups gmane.comp.mathematics.pari.user
Message-ID <[email protected]>
To all:

This is a question about moving points on an elliptic curve from reals 
to a number field, and from a number field to reals (which uses a subst 
and a lift)

I can do a subst(lift) command on an algebraic number to find a decimal 
value

Example:

Mod(-1156/4489*x + 24633/4489, x^2 - 290), Mod(387549/300763*x - 
11978472/300763, x^2 - 290)]

lifts* under the nf (x^2-290) to

[x,y] = [1.1020337181976119964245667123185152487, 
-17.883683642175364504497552094101227420]

But how do I go the reverse direction? This question is 2 parts. The 
first is if I know the nf polynomial, x^2 - 290, and I suspect it is 
easy to find the algebraic number. But the second part of the question 
is if I don't know the algebraic field.

The algdep(x,2) = 4489*x^2 - 49266*x + 4884 and algdep(y,2) = 300763*x^2 
+ 23956944*x + 332246538 so I guess I am asking how to move from the 
algdep values back to the nf(x^2+290) values?

If I do

nf=nfinit(y^2-290)

nffactor(nf, 4489*x^2 - 49266*x + 48841),  I get two values, which are 
close but not quite identical:

[x + Mod(-1156/4489*y - 24633/4489, y^2 - 290) 1]

[ x + Mod(1156/4489*y - 24633/4489, y^2 - 290) 1]

it appears that x = 0 and the wrong sign, a negative sign in front of 
24633/4489 is shown, not a positive + sign, for both factors.

I am just learning number fields in GP Pari and stumbling around trying 
to make educated guess, the nffactor(nf,T) is close but not correct

Thanks for showing what GP Pari commands to use.

Suppose I have a decimal value for a point

[48.524409093877418991299749586199724677, 
-358.16199519959579719705531742590169930]

How do I recover

[Mod(x^2 - 3, x^4 - 1752*x^2 + 87616), Mod(-591/592*x^3 + 57/37*x, x^4 - 
1752*x^2 + 87616)]

I notice that the algdep of the decimals are x^2 - 1746*x + 82369 and  
12593559*x^2 + 4343640212*x - 59775090213

Thank you for your patience.

Randall

* two lifts are needed

subst(lift(Mod(-1156/4489*x + 24633/4489, x^2-290),x),x,sqrt(290))

subst(lift(Mod(387549/300763*x - 11978472/300763, x^2 - 290))
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.