# Partial fraction decomposition over the reals or complex

Hi,

I am trying to get partial fraction decomposition (for integration) but over the complex numbers. For example, the denominator (x^2+1)*(x^3-2) should produce five fractions. I have experimented a bit with coercion but didn't manage to get anything. For example:

```
f=x^3-2
R=CC['x']
ff=R(f)
factor(f); factor(ff)
```

produces

```
x^3 - 2
(x - 1.25992104989487) * (x + 0.629960524947437 - 1.09112363597172*I) * (x + 0.629960524947437 + 1.09112363597172*I)
```

so far so good (except for decimals). But `(1/f).partial_fraction()`

produces `1/(x^3 - 2)`

, and `(1/ff).partial_fraction()`

produces

```
Traceback (click to the left of this block for traceback)
...
AttributeError: 'FractionFieldElement_1poly_field' object has no attribute 'partial_fraction'
```

On the other hand, `(1/ff).partial_fraction_decomposition()`

gives

```
(0, [0.209986841649145/(x - 1.25992104989487), (-0.104993420824573 +
0.181853939328620*I)/(x + 0.629960524947437 - 1.09112363597172*I),
(-0.104993420824573 - 0.181853939328620*I)/(x + 0.629960524947437 +
1.09112363597172*I)])
```

which is correct but not exact. Is there a command to get an exact decomposition over C, or am I stuck with having to set and solve a linear system?

Thanks

I don't know how to do the computation like you ask, but I can tell you why it's not exact: you're working over CC, so you're asking for a numerical answer.