1717
1818package org .apache .spark .mllib .linalg
1919
20- import org .apache .spark .annotation .Experimental
2120import breeze .linalg .{DenseMatrix => BDM , DenseVector => BDV }
22- import org .netlib .util .{intW , doubleW }
2321import com .github .fommil .netlib .ARPACK
22+ import org .netlib .util .{intW , doubleW }
23+
24+ import org .apache .spark .annotation .Experimental
2425
2526/**
2627 * :: Experimental ::
@@ -46,11 +47,11 @@ object EigenValueDecomposition {
4647 : (BDV [Double ], BDM [Double ]) = {
4748 require(n > k, s " Number of required eigenvalues $k must be smaller than matrix dimension $n" )
4849
49- val arpack = ARPACK .getInstance()
50+ val arpack = ARPACK .getInstance()
5051
5152 val tolW = new doubleW(tol)
5253 val nev = new intW(k)
53- val ncv = scala.math.min(2 * k, n)
54+ val ncv = scala.math.min(2 * k, n)
5455
5556 val bmat = " I"
5657 val which = " LM"
@@ -63,9 +64,9 @@ object EigenValueDecomposition {
6364 var ido = new intW(0 )
6465 var info = new intW(0 )
6566 var resid : Array [Double ] = new Array [Double ](n)
66- var v = new Array [Double ](n* ncv)
67- var workd = new Array [Double ](3 * n )
68- var workl = new Array [Double ](ncv* (ncv+ 8 ))
67+ var v = new Array [Double ](n * ncv)
68+ var workd = new Array [Double ](n * 3 )
69+ var workl = new Array [Double ](ncv * (ncv + 8 ))
6970 var ipntr = new Array [Int ](11 )
7071
7172 // first call to ARPACK
@@ -74,9 +75,10 @@ object EigenValueDecomposition {
7475
7576 val w = BDV (workd)
7677
77- while (ido.`val` != 99 ) {
78- if (ido.`val` != - 1 && ido.`val` != 1 )
78+ while (ido.`val` != 99 ) {
79+ if (ido.`val` != - 1 && ido.`val` != 1 ) {
7980 throw new IllegalStateException (" ARPACK returns ido = " + ido.`val`)
81+ }
8082 // multiply working vector with the matrix
8183 val inputOffset = ipntr(0 ) - 1
8284 val outputOffset = ipntr(1 ) - 1
@@ -88,8 +90,9 @@ object EigenValueDecomposition {
8890 workd, workl, workl.length, info)
8991 }
9092
91- if (info.`val` != 0 )
93+ if (info.`val` != 0 ) {
9294 throw new IllegalStateException (" ARPACK returns non-zero info = " + info.`val`)
95+ }
9396
9497 val d = new Array [Double ](nev.`val`)
9598 val select = new Array [Boolean ](ncv)
@@ -118,4 +121,4 @@ object EigenValueDecomposition {
118121
119122 (BDV (sortedEigenPairs.map(_._1)), sortedU)
120123 }
121- }
124+ }
0 commit comments