igraph_arpack_rnsolve(cb2, /*extra=*/ &data, &options, /*storage=*/ 0,
&values, &vectors);
+ while (options.nev < igraph_matrix_nrow(&values)) {
+ igraph_matrix_remove_row(&values, igraph_matrix_nrow(&values)-1);
+ }
+
if (MATRIX(values, 2, 1) > 0) {
MATRIX(values, 2, 1) = -MATRIX(values, 2, 1);
MATRIX(values, 3, 1) = -MATRIX(values, 3, 1);
igraph_arpack_rnsolve(cb2, /*extra=*/ &data, &options, /*storage=*/ 0,
&values, &vectors);
+ while (options.nev < igraph_matrix_nrow(&values)) {
+ igraph_matrix_remove_row(&values, igraph_matrix_nrow(&values)-1);
+ }
+
if (MATRIX(values, 2, 1) > 0) {
MATRIX(values, 2, 1) = -MATRIX(values, 2, 1);
}
igraph_arpack_rnsolve(cb2, /*extra=*/ &data, &options, /*storage=*/ 0,
&values, &vectors);
+ while (options.nev < igraph_matrix_nrow(&values)) {
+ igraph_matrix_remove_row(&values, igraph_matrix_nrow(&values)-1);
+ }
+
igraph_matrix_print(&values);
printf("---\n");
igraph_matrix_print(&vectors);
igraph_arpack_rnsolve(cb2, /*extra=*/ &data, &options, /*storage=*/ 0,
&values, &vectors);
+ while (options.nev < igraph_matrix_nrow(&values)) {
+ igraph_matrix_remove_row(&values, igraph_matrix_nrow(&values)-1);
+ }
+
igraph_matrix_print(&values);
printf("---\n");
igraph_matrix_print(&vectors);
}
while (1) {
+#if IGRAPH_THREAD_SAFE
igraphdsaupd_(&ido, options.bmat, &options.n, options.which,
&options.nev, &options.tol, resid, &options.ncv, v,
&options.ldv, options.iparam, options.ipntr, workd,
workl, &options.lworkl, &options.info);
+#endif
if (ido == -1 || ido == 1) {
return 0;
}
+#if IGRAPH_THREAD_SAFE
igraphdseupd_(&rvec, all, select, d, v, &options.ldv,
&options.sigma, options.bmat, &options.n,
options.which, &options.nev, &options.tol,
resid, &options.ncv, v, &options.ldv, options.iparam,
options.ipntr, workd, workl, &options.lworkl,
&options.ierr);
+#endif
if (options.ierr != 0) {
printf("ARPACK error\n");