On Wednesday, March 25, 2015 at 3:24:23 AM UTC+5:30, Kalevi Suominen wrote:
>
>
>
> On Tuesday, March 24, 2015 at 11:28:11 PM UTC+2, Aaron Meurer wrote:
>>
>> The current algebraic extension code in the polys (like 
>> Poly(extension=[sqrt(x)])) is quite weak. Will this project require 
>> expanding those abilities?
>>
>
> Aaron,
> I have not delved deeper into the matter, but it looks like the current 
> methods in
> numberfields would essentially suffice, at least if they function as 
> expected. 
> The central one is  primitive_element()  which enables the
>
Is primitive_element doing something similar to simple 
<https://github.com/sympy/sympy/wiki/GSoC-2015-Application-Luv-Agarwal:-Cylindrical-Algebraic-Decomposition#2-simple>?.
 
If yes, will there be difference in efficiency of both of these as they 
take input in different form?.

Thanks

> construction of an extension containing any (finite) family of algebraic 
> numbers.
> On the other hand, the methods in AlgebraicField require revision.
>
> Kalevi  
>
>>
>> On Tue, Mar 24, 2015 at 7:26 AM, Kalevi Suominen <[email protected]> 
>> 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 [email protected]. 
>> > To post to this group, send email to [email protected]. 
>> > 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 [email protected].
To post to this group, send email to [email protected].
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/956d9fdc-a16d-4227-8230-9193bc2a6440%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to