1########################################################################
2##
3## Copyright (C) 1999-2021 The Octave Project Developers
4##
5## See the file COPYRIGHT.md in the top-level directory of this
6## distribution or <https://octave.org/copyright/>.
7##
8## This file is part of Octave.
9##
10## Octave is free software: you can redistribute it and/or modify it
11## under the terms of the GNU General Public License as published by
12## the Free Software Foundation, either version 3 of the License, or
13## (at your option) any later version.
14##
15## Octave is distributed in the hope that it will be useful, but
16## WITHOUT ANY WARRANTY; without even the implied warranty of
17## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18## GNU General Public License for more details.
19##
20## You should have received a copy of the GNU General Public License
21## along with Octave; see the file COPYING.  If not, see
22## <https://www.gnu.org/licenses/>.
23##
24########################################################################
25
26## -*- texinfo -*-
27## @deftypefn {} {} rosser ()
28## Return the @nospell{Rosser} matrix.
29##
30## This is a difficult test case used to evaluate eigenvalue algorithms.
31## @seealso{wilkinson, eig}
32## @end deftypefn
33
34function retval = rosser ()
35
36  if (nargin != 0)
37    print_usage ();
38  endif
39
40  retval = [611,   196,  -192,   407,    -8,   -52,   -49,    29;
41            196,   899,   113,  -192,   -71,   -43,    -8,   -44;
42           -192,   113,   899,   196,    61,    49,     8,    52;
43            407,  -192,   196,   611,     8,    44,    59,   -23;
44             -8,   -71,    61,     8,   411,  -599,   208,   208;
45            -52,   -43,    49,    44,  -599,   411,   208,   208;
46            -49,    -8,     8,    59,   208,   208,    99,  -911;
47             29,   -44,    52,   -23,   208,   208,  -911,    99];
48
49endfunction
50
51
52%!assert (size (rosser ()), [8,8])
53%!assert (rosser ()([1, end]), [611, 99])
54
55%!error (rosser (1))
56