# HG changeset patch # User jwe # Date 849723993 0 # Node ID 96b57a9485b653a329c48c0b34cb3a72c1bebc0c # Parent 6fa1ac46c980f8f0d36674b2f5041cb762927eac [project @ 1996-12-04 18:26:33 by jwe] diff -r 6fa1ac46c980 -r 96b57a9485b6 liboctave/ChangeLog --- a/liboctave/ChangeLog Tue Dec 03 17:49:40 1996 +0000 +++ b/liboctave/ChangeLog Wed Dec 04 18:26:33 1996 +0000 @@ -1,3 +1,9 @@ +Wed Dec 4 12:24:24 1996 John W. Eaton + + * dMatrix.cc (Qzval): Don't try to use same memory three times. + Create result using Complex constructor, not multiplication. + Order elements as they are returned from Eispack. + Mon Dec 2 00:26:41 1996 John W. Eaton * lo-ieee.cc (octave_ieee_init): Kluge for octave_Inf on SCO. diff -r 6fa1ac46c980 -r 96b57a9485b6 liboctave/dMatrix.cc --- a/liboctave/dMatrix.cc Tue Dec 03 17:49:40 1996 +0000 +++ b/liboctave/dMatrix.cc Wed Dec 04 18:26:33 1996 +0000 @@ -3228,10 +3228,10 @@ double *palfr = alfr.fortran_vec (); ColumnVector alfi (a_nr); - double *palfi = alfr.fortran_vec (); + double *palfi = alfi.fortran_vec (); ColumnVector beta (a_nr); - double *pbeta = alfr.fortran_vec (); + double *pbeta = beta.fortran_vec (); Matrix atmp = a; double *pa = atmp.fortran_vec (); @@ -3259,22 +3259,20 @@ int cnt = 0; for (int i = 0; i < a_nr; i++) - if (beta.elem (i) != 0) + if (beta(i) != 0) cnt++; - ComplexColumnVector cx (cnt, 0.0); - - Complex Im (0, 1); + ComplexColumnVector cx (cnt); + + cnt = 0; for (int i = 0; i < a_nr; i++) { - if (beta.elem (i) != 0) + if (beta(i) != 0) { // Finite generalized eigenvalue. - cnt--; - cx.elem (cnt) = (alfr.elem (i) + Im * alfi.elem (i)) - / beta.elem (i); + cx(cnt++) = Complex (alfr(i), alfi(i)) / beta(i); } }