daisukedemos / redsvd

Automatically exported from code.google.com/p/redsvd
0 stars 0 forks source link

計算メソッドにPCAを指定した場合、結果出力時eigen3のassertionに引っかかって落ちる #2

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
$ cat file1
 1.0  2.0  3.0  4.0  5.0
-2.0 -1.0  0.0  1.0  2.0
 1.0 -2.0  3.0 -5.0  7.0
$ redsvd -i file1 -o file1 -r 2 -f dense -m PCA && cat file1.*
compute PCA
read matrix from file1 ... -6.89179e-08 sec.
rows:   3
cols:   5
rank:   2
compute ... 3.49246e-09 sec.
write file1.pc
assertion "other.rows() == 1 || other.cols() == 1" failed: file 
"/usr/local/include/eigen3/Eigen/src/Core/DenseStorageBase.h", line 247, 
function: void Eigen::DenseStorageBase<Derived>::resizeLike(const 
Eigen::EigenBase<OtherDerived>&) [with OtherDerived = Eigen::Matrix<float, 
-0x000000001, -0x000000001, 0, -0x000000001, -0x000000001>, Derived = 
Eigen::Matrix<float, -0x000000001, 1, 0, -0x000000001, 1>]
Aborted (core dumped)

What is the expected output? What do you see instead?
計算結果が出力されてほしい

What version of the product are you using? On what operating system?
- Windows XP
- Cygwin 1.7
- redsvd 0.1.2
- eigen3 beta2

Please provide any additional information below.
writeMatrix(const string& fn, const REDSVD::RedPCA& A) 内のwriteVector_(const 
string& fn, const VectorXf& V)の呼び出しにおいて、MatrixXf 
RedPCA#scores()をVectorXfに変換しようとするところで落ちている
ようです。

Original issue reported on code.google.com by discommu...@gmail.com on 16 Nov 2010 at 4:19

GoogleCodeExporter commented 9 years ago
こちら修正しました。writeVector_ではなくwriteMatrix_を読み出��
�なければなりませんでした。
ご指摘ありがとうございます。0.1.4から修正しています。

Original comment by Daisuke.Okanohara on 12 Apr 2011 at 6:06