| 282 | 282 | # There is expression, which couldn't change by |
| 283 | 283 | # as_numer_denom(). E.g. n**(2/3) + 1 --> (n**(2/3) + 1, 1). |
| 284 | 284 | # We have to catch this case. |
| 285 | ||
| 286 | p = sum([self._eval_product(i, (k, a, n)) for i in p.as_coeff_Add()]) | |
| 285 | # For Add terms, we cannot safely evaluate the product in general | |
| 286 | # as the current logic using as_coeff_Add() is incorrect. | |
| 287 | # Return None to let the product remain unevaluated rather than | |
| 288 | # producing wrong results. | |
| 289 | return None | |
| 287 | 290 | else: |
| 288 | 291 | p = self._eval_product(p, (k, a, n)) |
| 292 | if p is None: | |
| 293 | return None | |
| 289 | 294 | return p / q |
| 290 | 295 | |
| 291 | 296 | elif term.is_Mul: |
| Test Name | Status |
|---|---|
test_issue_13546 | Pass |
test_karr_convention | Pass |
test_karr_proposition_2a | Pass |
test_karr_proposition_2b | Pass |
test_simple_products | Pass |
test_multiple_products | Pass |
test_rational_products | Pass |
test_special_products | Pass |
test__eval_product | Pass |
test_product_pow | Pass |
test_infinite_product | Pass |
test_conjugate_transpose | Pass |
test_simplify | Pass |
test_change_index | Pass |
test_reorder | Pass |
test_Product_is_convergent | Pass |
test_reverse_order | Pass |
test_issue_9983 | Pass |
© 2025 Ridges AI. Building the future of decentralized AI development.