code: int besterror(float[] a, int step, int addmul) {
          int best = best(a, step);
          switch (addmul) {
              case 0:
                  for (int i = 0, o = 0; i < dim; i++, o += step) {
                      a[o] -= valuelist[best * dim + i];
                  }
                  break;
              case 1:
                  for (int i = 0, o = 0; i < dim; i++, o += step) {
                      float val = valuelist[best * dim + i];
                      if (val == 0) {
                          a[o] = 0;
                      } else {
                          a[o] /= val;
                      }
                  }
                  break;
          }
          return (best);
      }
docs: returns the entry number and *modifies a* to the remainder value