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.


In reply to Re: How does Perl handle arithmetic overflows? by Corion
in thread How does Perl handle arithmetic overflows? by f77coder

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.