1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
/* Tests for LAPACK routines */
/* Square test matrix */
a:matrix([.35,.45,-.14,-.17],[.09,.07,-.54,.35],[-.44,-.33,-.03,.17],[.25,-.32,-.13,.11]);
matrix([.35,.45,-.14,-.17],[.09,.07,-.54,.35],[-.44,-.33,-.03,.17],[.25,-.32,-.13,.11]);
/* Test dlange (matrix norms) */
dlange('max,a);
0.54;
dlange('one_norm,a);
1.17;
dlange('inf_norm,a);
1.11;
is(abs(dlange('frobenius,a)-1.151868047998554) < 1e-10);
true;
/* Test dgeev */
(res:dgeev(a,true),0);
0;
is(zlange('inf_norm, matrix(res[1])-matrix([.79948,-.099412+%i*.40079,-.099412-%i*.40079,-.10066]))<1e-4);
true;
(eig:transpose(matrix([-.65509,-.52363,.53622,-.095607],
[-.19330+%i*.25463, .25186-%i*.52240, .097182-%i*.30838, .67595],
[-.19330-%i*.25463, .25186+%i*.52240, .097182+%i*.30838, .67595],
[ .12533, .33202, .59384, .72209]))
,0);
0;
is(zlange('one_norm, res[2]-eig) < 5e-5);
true;
/* SF bug # 2634: "zgeev does not operate on real matrices" */
zgeev (matrix ([1, 0], [0, 1]), true, false);
[[1.0,1.0],matrix([1.0,0.0],[0.0,1.0]),false];
|