Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.
  * The ASF licenses this file to You under the Apache License, Version 2.0
  * (the "License"); you may not use this file except in compliance with
  * the License.  You may obtain a copy of the License at
  *
  *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.mahout.math.ssvd;
Implements an in-memory version of stochastic projection based SVD. See SequentialOutOfCoreSvd for algorithm notes.
public class SequentialBigSvd {
  private final Matrix y;
  private final CholeskyDecomposition cd1;
  private final CholeskyDecomposition cd2;
  private final SingularValueDecomposition svd;
  private final Matrix b;
  public SequentialBigSvd(Matrix Aint p) {
    // Y = A * \Omega
     = A.times(new RandomTrinaryMatrix(A.columnSize(), p));
    // R'R = Y' Y
    // B = Q" A = (Y R^{-1} )' A
     = .solveRight().transpose().times(A);
    // L L' = B B'
    // U_0 D V_0' = L
  }
  public Vector getSingularValues() {
    return new DenseVector(.getSingularValues());
  }
  public Matrix getU() {
    // U = (Y inv(R)) U_0
    return .solveRight().times(.getU());
  }
  public Matrix getV() {
    // V = (B' inv(L')) V_0
    return .solveRight(.transpose()).times(.getV());
  }
New to GrepCode? Check out our FAQ X