Uploaded image for project: 'Hama'
  1. Hama
  2. HAMA-66

The determinant of a matrix

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Resolved
    • Major
    • Resolution: Won't Fix
    • None
    • None
    • math
    • None

    Description

      This is my old map/reduce code to get the determinant of a matrix.

      Map:

      public void map(HStoreKey key, MapWritable value,
      OutputCollector<Text, MapWritable> output, Reporter reporter)
      throws IOException

      { int r = Integer.parseInt(String.valueOf(key.getRow())); checkObj.set(r, 0, 0.0); double d = matrix_a.get(r, 0) * Math.pow(-1.0, r) * minor(r, 1); checkObj.set(r, 0, 1.0); MapWritable val = new MapWritable(); val.put(Constants.COLUMN, getBytesWritable(d)); output.collect(Constants.DETERMINANT, val); }

      private double minor(int processRow, int processColumn)
      throws IOException {
      double result = 0.0;
      int i = 0;
      if ((row - processColumn) == 0)

      { return 1.0; }

      for (int r = 0; r < row; r++) {
      double trans = checkObj.get(r, 0);
      if (trans != 0.0)

      { checkObj.set(r, 0, 0.0); result += matrix_a.get(r, processColumn) * Math.pow(-1.0, i) * minor(r, processColumn + 1); checkObj.set(r, 0, 1.0); i++; }

      }

      return result;
      }

      Reduce:

      public void reduce(Text key, Iterator<MapWritable> values,
      OutputCollector<Text, MapWritable> output, Reporter reporter)
      throws IOException {

      double sum = 0;
      while (values.hasNext())

      { sum += getDouble(values.next().get(Constants.COLUMN)); }

      MapWritable value = new MapWritable();
      value.put(Constants.COLUMN, getBytesWritable(sum));
      output.collect(key, value);
      }

      Attachments

        Activity

          People

            Unassigned Unassigned
            udanax Edward J. Yoon
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: