I'm working with an algorithm that generates numbers larger than the `Extended` type allows, which leads to runtime errors.

```
var 
  a, b, magn: Extended;
...
a := -3,6854775808e-3109;
b := 2,3020377564e+3549;
magn:= a * a + b * b; //EInvalidOp, "invalid floating point operation"

```

How can I solve this problem?

---

I'm writing the algorithm SmbPitchShift Site <http://www.dspdimension.com> c + + to pascal. If someone has it in Pascal, I will thank