Uploaded image for project: 'Commons Math'
  1. Commons Math
  2. MATH-1258

compute() method in classes in org.apache.commons.math4.ml.distance package

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 4.0, 3.6
    • Labels:
      None

      Description

      Hi!

      There are five classes CanberraDistance, ChebyshevDistance, EarthMoversDistance, EuclideanDistance and ManhattanDistance in org.apache.commons.math4.ml.distance package, which compute different types of distances. Each of them contains method compute(double[] a, double[] b) that accepts two double arrays as variables.

      However, if the lengths of array a is greater than the length of array b, the method compute() in all the five classes produces java.lang.ArrayIndexOutOfBoundsException.

      For example,
      private void test0() {
      CanberraDistance distance = new CanberraDistance();

      final double[] a =

      { 1, 2, 3, 4, 9, 4 }

      ;
      final double[] b =

      { -5, -6, 7, 4, 3 }

      ;
      distance.compute(a, b);
      }

        Attachments

        1. patch.diff
          10 kB
          Otmar Ertl
        2. pre-MATH-1258.patch
          4 kB
          Gilles

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              gjahanagirova Gunel Jahangirova
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: