octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #61300] integer range might exceed upper limit


From: Arun Giridhar
Subject: [Octave-bug-tracker] [bug #61300] integer range might exceed upper limit
Date: Sun, 28 Nov 2021 13:52:58 -0500 (EST)
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:94.0) Gecko/20100101 Firefox/94.0

Follow-up Comment #16, bug #61300 (project octave):

OK, using value() works for ascending ranges but fails for descending ranges,
giving an empty range instead. How to fix this behavior?

Updated code inside Range.h:

    void init (void)
    {
      uint64_t numer = m_limit.value () - m_base.value () + m_increment.value
();
      uint64_t denom = m_increment.value ();

      m_numel = ((m_increment == T (0)
                  || (m_limit > m_base && m_increment < T (0))
                  || (m_limit < m_base && m_increment > T (0)))
                 ? 0
                 : (numer / denom));

      m_final = m_base + (m_numel - 1) * m_increment;
    }


Wrong result for descending ranges:

>> int64 (100) : int64 (-6) : 0
ans = [](1x0)



    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?61300>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]