claen up imports, make number of SISVD iterations (package-) configurable
diff --git a/src/main/java/com/yahoo/sketches/vector/decomposition/FrequentDirections.java b/src/main/java/com/yahoo/sketches/vector/decomposition/FrequentDirections.java
index d6f3f97..7b04e5f 100644
--- a/src/main/java/com/yahoo/sketches/vector/decomposition/FrequentDirections.java
+++ b/src/main/java/com/yahoo/sketches/vector/decomposition/FrequentDirections.java
@@ -27,7 +27,6 @@
 import static com.yahoo.sketches.vector.decomposition.PreambleUtil.insertSVAdjustment;
 import static com.yahoo.sketches.vector.decomposition.PreambleUtil.insertSerVer;
 
-import com.yahoo.sketches.vector.matrix.MatrixType;
 import org.ojalgo.array.Array1D;
 import org.ojalgo.matrix.decomposition.SingularValue;
 import org.ojalgo.matrix.store.MatrixStore;
@@ -38,7 +37,7 @@
 import com.yahoo.memory.WritableMemory;
 import com.yahoo.sketches.vector.MatrixFamily;
 import com.yahoo.sketches.vector.matrix.Matrix;
-import com.yahoo.sketches.vector.matrix.MatrixBuilder;
+import com.yahoo.sketches.vector.matrix.MatrixType;
 
 /**
  * This class implements the Frequent Directions algorithm proposed by Edo Liberty in "Simple and
diff --git a/src/main/java/com/yahoo/sketches/vector/decomposition/MatrixOps.java b/src/main/java/com/yahoo/sketches/vector/decomposition/MatrixOps.java
index 7923b14..9c6cf7e 100644
--- a/src/main/java/com/yahoo/sketches/vector/decomposition/MatrixOps.java
+++ b/src/main/java/com/yahoo/sketches/vector/decomposition/MatrixOps.java
@@ -12,8 +12,8 @@
  */
 public abstract class MatrixOps {
 
-  // number of iterations for SISVD
-  static final int DEFAULT_NUM_ITER = 200;
+  // iterations for SISVD
+  private static final int DEFAULT_NUM_ITER = 8;
 
   /**
    * Matrix dimensions
@@ -31,6 +31,8 @@
    */
   final SVDAlgo algo_;
 
+  int numSISVDIter_;
+
   /**
    * Creates an empty MatrixOps object to support Frequent Directions matrix operations
    *
@@ -68,6 +70,8 @@
     d_ = d;
     algo_ = algo;
     k_ = k;
+
+    numSISVDIter_ = DEFAULT_NUM_ITER;
   }
 
   /**
@@ -128,4 +132,7 @@
    */
   abstract MatrixOps svd(final Matrix A, final boolean computeVectors);
 
+  void setNumSISVDIter(final int numSISVDIter) {
+    numSISVDIter_ = numSISVDIter;
+  }
 }
diff --git a/src/main/java/com/yahoo/sketches/vector/decomposition/MatrixOpsImplMTJ.java b/src/main/java/com/yahoo/sketches/vector/decomposition/MatrixOpsImplMTJ.java
index 58fd8aa..735ebc4 100644
--- a/src/main/java/com/yahoo/sketches/vector/decomposition/MatrixOpsImplMTJ.java
+++ b/src/main/java/com/yahoo/sketches/vector/decomposition/MatrixOpsImplMTJ.java
@@ -6,9 +6,9 @@
 
 import java.util.concurrent.ThreadLocalRandom;
 
-import com.github.fommil.netlib.BLAS;
 import org.netlib.util.intW;
 
+import com.github.fommil.netlib.BLAS;
 import com.github.fommil.netlib.LAPACK;
 import com.yahoo.sketches.vector.matrix.Matrix;
 import com.yahoo.sketches.vector.matrix.MatrixImplMTJ;
@@ -23,7 +23,7 @@
 /**
  * Computes singular value decompositions
  */
-public class MatrixOpsImplMTJ extends MatrixOps {
+class MatrixOpsImplMTJ extends MatrixOps {
 
   /**
    * The singular values
@@ -253,7 +253,7 @@
     final QR qr = new QR(block_.numRows(), block_.numColumns());
     block_ = qr.factor(block_).getQ(); // important for numeric stability
 
-    for (int i = 0; i < DEFAULT_NUM_ITER; ++i) {
+    for (int i = 0; i < numSISVDIter_; ++i) {
       A.mult(block_, T_);
       A.transAmult(T_, block_);
       block_ = qr.factor(block_).getQ(); // again, for stability
diff --git a/src/main/java/com/yahoo/sketches/vector/decomposition/MatrixOpsImplOjAlgo.java b/src/main/java/com/yahoo/sketches/vector/decomposition/MatrixOpsImplOjAlgo.java
index 589377a..3434b19 100644
--- a/src/main/java/com/yahoo/sketches/vector/decomposition/MatrixOpsImplOjAlgo.java
+++ b/src/main/java/com/yahoo/sketches/vector/decomposition/MatrixOpsImplOjAlgo.java
@@ -1,6 +1,5 @@
 package com.yahoo.sketches.vector.decomposition;
 
-import com.yahoo.sketches.vector.matrix.MatrixImplOjAlgo;
 import org.ojalgo.matrix.decomposition.QR;
 import org.ojalgo.matrix.decomposition.SingularValue;
 import org.ojalgo.matrix.store.MatrixStore;
@@ -9,9 +8,10 @@
 import org.ojalgo.random.Normal;
 
 import com.yahoo.sketches.vector.matrix.Matrix;
+import com.yahoo.sketches.vector.matrix.MatrixImplOjAlgo;
 import com.yahoo.sketches.vector.matrix.MatrixType;
 
-public class MatrixOpsImplOjAlgo extends MatrixOps {
+class MatrixOpsImplOjAlgo extends MatrixOps {
   //private SingularValue<Double> svd;
   private double[] sv_;
   private PrimitiveDenseStore Vt_;
@@ -154,7 +154,7 @@
     qr_.decompose(block_);
     qr_.getQ().supplyTo(block_);
 
-    for (int i = 0; i < DEFAULT_NUM_ITER; ++i) {
+    for (int i = 0; i < numSISVDIter_; ++i) {
       A.multiply(block_).supplyTo(T_);
       A.transpose().multiply(T_).supplyTo(block_);