in reply to How does Perl handle arithmetic overflows?
If you really need arbitrary precision beyond what your Perl has been compiled to use as floating point values, have a look at Math::BigInt and/or Math::BigRat (and bignum. Perl will automatically switch from integer calculations to floating point calculations if the numbers involved in an operation get too large, so your problem will not be with underflow/overflow but with precision.
I think that by carefully looking at the actual numerical conversions, you can also get by with simply using the Perl native operations, but as I mostly work in the integer domain, I haven't had to do so myself.
Personally, I'm not too sure if I understood your C code correctly and understood where you feel there are problems. From my cursory reading, I understand that your code iterates over the first n elements of array A (or arr in the second example) and tries to find an index where the sum of the values in the array left of that index is identical to the sum on the right of that index.
Your use of long long types suggests to me that you are afraid of the sum getting too large and getting integer addition overflows, but I'm not sure if you're also afraid of n overflowing and not being able to reach all array elements or if that is actually an issue in C.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: How does Perl handle arithmetic overflows?
by f77coder (Beadle) on Sep 08, 2016 at 12:37 UTC |