As Oscar pointed out, it's not clear that this would actually be more
efficient. However, some things that could help, based on what you've
said, are

- Use Poly and any relevant Poly methods to represent and manipulate
polynomial expressions
- Make sure gmpy2 is installed. If it is, SymPy will automatically use it
for much faster integer operations, especially when using Poly.
- Rewrite your recursive function to operate non-recursively. Recursive
functions are slower in Python than normal loops.

Aaron Meurer

On Sat, Aug 6, 2022 at 8:08 AM Thomas Ligon <thomassli...@gmail.com> wrote:

> Is there any way to do this, perhaps just by saying that I want to keep
> prime factors instead of decimal digits?
> Background: I am writing software (using Python and SymPy) to calculate
> the coefficients of a power series. By using Rational(0) to initialize sums
> and Rational(1,2) to avoid getting a floating point, I have results that
> are always rational, specifically quotients of large integers and have
> reached the point where the integers have about 50 digits. I have a (fairly
> complex) recursive function that calculates the coefficient of x**(n+1)
> when the coefficients of x**n are known. When calculating the sum of two
> rational numbers, this most likely calculates the greatest common
> denominator, something which is sure to be hard. If all of the integers
> were always stored in terms of their prime factors instead of decimal
> digits, it would be much more efficient.
> Is there such a feature out there somewhere?
>
> --
> 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 view this discussion on the web visit
> https://groups.google.com/d/msgid/sympy/7171be2f-67a7-4d48-8eac-5d37571677c4n%40googlegroups.com
> <https://groups.google.com/d/msgid/sympy/7171be2f-67a7-4d48-8eac-5d37571677c4n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CAKgW%3D6K30P76B8J%2B4rBrqQ0bCzV0OHY%3DJjZjaKb4ZkWzRZUYoA%40mail.gmail.com.

Reply via email to