!standard G.3.1(78/3) 11-01-28 AC95-00211/01
!standard G.3.2(146/3)
!class confirmation 11-01-28
!status received no action 11-01-28
!status received 10-08-31
!subject Ranges of the Vectors output of Eigensystem
!summary
!appendix
!topic Ranges of the Vectors output of Eigensystem
!reference Ada 2005 RM G.3.1(78/3), G.3.2(146/3)
!from Simon Wright 10-08-31
!discussion
It's not clear why the output parameter Vectors has ranges (A'Range (1), A'Range
(2)). It should be (A'Range (1), A'Range (1)).
Looking at the RM wording "The out parameter Vectors is a matrix whose columns
are the eigenvectors of the matrix A. The order of the columns corresponds to
the order of the eigenvalues.", one would expect that the eigenvector for Values
(J) would be column J of Vectors, whereas in fact it's column (J - Values'First
+ Vectors'First (2)).
Of course, in many uses the range(s) concerned will be 1 .. N so no one will
notice the difference.
***************************************************************
Summary of private mail on this topic:
Randy Brukardt:
The following was on Ada-Comment a while back. I don't know enough to make
an intelligent decision on whether this ought to be fixed, ignored, or
somewhere in between. It strikes me that his suggestion would be an
inconsistency (a runtime incompatibility - the worst kind), so there would
have to be substantial reason to change it.
John Barnes:
Pascal and I discussed this years ago. Perhaps the mistake was to allow A to
have ranges other than 1 .. N in the first place. As you say, changing it now
would be an incompatibility of the worst kind. Leave it alone.
***************************************************************