Looks like Lanczos is having the same problem and need to undo some
workarounds :
EigenDecomposition decomp = new EigenDecomposition(triDiag);
Matrix eigenVects = decomp.getV();
Vector eigenVals = decomp.getRealEigenvalues();
endTime(TimingSection.TRIDIAG_DECOMP);
startTime(TimingSection.FINAL_EIGEN_CREATE);
for (int row = 0; row < i; row++) {
Vector realEigen = null;
// the eigenvectors live as columns of V, in reverse order. Weird
but true.
Vector ejCol = eigenVects.viewColumn(i - row - 1);
int size = Math.min(ejCol.size(), state.getBasisSize());
On Wed, Jul 10, 2013 at 12:53 PM, Dmitriy Lyubimov <[email protected]>wrote:
> changing line 329 of EigenDecomposition.java from
>
> if (d.getQuick(j) < p) {
>
> to
> if (d.getQuick(j) > p) {
>
>
> makes my MAHOUT-1281 patch work.
>
> should i keep the change? (question for Ted, i guess)
>
> thanks.
> -D
>
>
>
>
> On Wed, Jul 10, 2013 at 11:59 AM, Dmitriy Lyubimov <[email protected]>wrote:
>
>> It looks like values out of our ported EigenDecomposition are coming out
>> sorted in inverse order.
>>
>> Shouldn't it be the other way around?
>>
>
>