// Builds the bidiagonal matrix A out of the lambda
 private static DoubleMatrix2D buildMatrix(double[] lambda, double x) {
   int k = lambda.length;
   DoubleFactory2D F2 = DoubleFactory2D.dense;
   DoubleMatrix2D A = F2.make(k, k);
   for (int j = 0; j < k - 1; j++) {
     A.setQuick(j, j, -lambda[j] * x);
     A.setQuick(j, j + 1, lambda[j] * x);
   }
   A.setQuick(k - 1, k - 1, -lambda[k - 1] * x);
   return A;
 }