Matrix applyAdjustment()

in src/main/java/org/apache/datasketches/vector/decomposition/MatrixOpsImplOjAlgo.java [140:158]


  Matrix applyAdjustment(final Matrix A, final double svAdjustment) {
    // copy A before decomposing
    final Primitive64Store result
            = Primitive64Store.FACTORY.copy((Primitive64Store) A.getRawObject());
    svd(Matrix.wrap(result), true);

    for (int i = 0; i < (k_ - 1); ++i) {
      final double val = sv_[i];
      final double adjSV = Math.sqrt((val * val) + svAdjustment);
      S_.set(i, i, adjSV);
    }
    for (int i = k_ - 1; i < S_.countColumns(); ++i) {
      S_.set(i, i, 0.0);
    }

    S_.multiply(Vt_, result);

    return Matrix.wrap(result);
  }