The current algebraic extension code in the polys (like
Poly(extension=[sqrt(x)])) is quite weak. Will this project require
expanding those abilities?

Aaron Meurer

On Tue, Mar 24, 2015 at 7:26 AM, Kalevi Suominen <jks...@gmail.com> wrote:
>
>
> On Tuesday, March 24, 2015 at 2:44:03 AM UTC+2, Luv Agarwal wrote
>>
>> I have updated my proposal.
>> Please have a look especially at the Timeline part. Is there anything that
>> I should add or remove?.
>>
>> Thanks
>> Luv Agarwal
>
>
> Thank you, Luv. I feel there is something I should add about root isolation.
> It may also affect the
> timetable.
>
> Implementing  log()  for algebraic numbers should not be difficult. One can
> pass to numerical values.
> They are approximate, of course, but then  log  itself is only used for an
> estimate.
>
> The comparisons of algebraic numbers are harder to implement. As noted
> before, the methods
> presented in AlgebraicField cannot be used because they do not conform to
> the standard order of
> real numbers. Instead, one could proceed as follows.
>
> If  a  and  b  are algebraic numbers, the inequality  a > b  is equivalent
> to  a - b > 0. So it is enough to
> find the sign of  a - b. In other words, to find a field  K  of algebraic
> numbers containing  a  and  b , and
> to implement  K.sign(x).
>
> An algebraic number field  K = Q(theta)  is generated by a single algebraic
> number  theta , called the
> primitive element of the field. If the degree of the minimal polynomial of
> theta  is  n , each element of
> K  has a unique representation as a polynomial  a = p(theta)  with rational
> coefficients and of degree < n.
>
> To compute the sign of  a , one looks for an interval  (u, v)  containing
> theta  and such that the polynomial
> p(t)  has no roots in the interval. Then the sign of  a  is the sign of
> p(t)  at any  t  in the interval.
>
> One can start with an interval isolating the root  theta  of the minimal
> polynomial and then refine it until
> it contains no roots of  p. Such an interval exists if  p != 0 , since then
> also  p(theta) != 0. One can do the
> refinement by simply bisecting the interval, or else following the method of
> dup_isolate_real_roots_sqf
> based on representing the root by a continued fraction.
>
> The classical method of determining the number of roots in an interval is by
> means of Sturm's theorem.
> The method used in  dup_isolate_real_roots_sqf  is simpler in principle. It
> is based on using a
> Moebius mapping to transform the interval to the positive real axis. If the
> coefficients of the transformed
> polynomial have the same sign (as reported by dup_sign_variations), it has
> no positive roots.
> (This is special case of Descartes' rule of signs which is trivial to
> verify.) Then the original polynomial
> has no roots in the refined isolating interval.
> An extra bonus is that the coefficients of the Moebius mapping are readily
> obtained from the convergents
> of the continued fractions.
>
> In summary: Implementation of inequalities in algebraic number fields is a
> substantial task. You may want
> to reconsider your timeline on that part.
>
> Best wishes,
> Kalevi
>
> --
> You received this message because you are subscribed to the Google Groups
> "sympy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sympy+unsubscr...@googlegroups.com.
> To post to this group, send email to sympy@googlegroups.com.
> Visit this group at http://groups.google.com/group/sympy.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sympy/3bd8afe9-f2b9-49cf-a2a2-9381e6f0eb35%40googlegroups.com.
>
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sympy+unsubscr...@googlegroups.com.
To post to this group, send email to sympy@googlegroups.com.
Visit this group at http://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CAKgW%3D6LqqBnuDj5WayBLiFVJg_GsGMxE2upfYZvN6Jff26AgeQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to