Thanks,
I'll try implementing them that way, as you said naively implementing
it can worsen the timings. Maybe I can find some better way out.
As I'm new to sympy and opensource programming even naive
implementations can serve as a learning experience.
I'll surely update you about the results.

Thanks

On 4 March 2013 02:33, Aaron Meurer <[email protected]> wrote:
> You could try implementing something like this, but I very much suspect it
> will be slower this way. For one thing, the space complexity will be
> increased by a lot, which is quite significant when you consider how many
> rationals might exist at one time. Second, factoring an integer is slow,
> even for relatively small integers. On the other hand, the Euclidean
> algorithm is very fast, and integer division by the gcd at the end is
> extremely fast (one cycle if the integer is small enough). Division would
> require a loop in your scheme. The same for multiplication. Addition would
> be the worst. You would have do a complete refactorization in general.
>
> Finally, you are mistaken in thinking that 10**20 is sufficient. Internal
> calculations of certain algorithms regularly result in very large numbers,
> and it's also not uncommon to start with very large numbers in the first
> place.
>
> Aaron Meurer
>
> On Feb 28, 2013, at 2:12 PM, Harsh Gupta <[email protected]> wrote:
>
> Hi,
>     I think it would be better if we represent the rational numbers as a
> product of primes raised to some integer power.
> We can compute and store all the primes we will need to work with a
> practically large number, say anyone will not need to work with numbers
> larger than 10**20.
> Then well will need store only primes less than 10**10, because if some
> number is not divisible by any number less than equal to sqrt(n) then it is
> prime.
> And if we happen to need more primes than we have stored then we can compute
> them in the run time.
> Representing the rational this way will make multiplication and division of
> primes a lot faster.
>
> --
> Harsh Gupta
>
> --
> 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?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>
> --
> 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?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>



-- 
Harsh

-- 
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?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to