printf( "Starting the ssi test...\n" );
for ( nr in 10:90:20 ) {
m = magic( nr );
m = - m @ ( m > 0.75*nr^2 );
m = sparse( symmetric( m+m'+diag( fill( nr; nr^3/1.8 ) ) ) );
e = eig( m );
ve = sort( abs( e.values ) );
ve.eid = NULL;
s = ssi( m; diag( fill( nr; 1 ) ); e.vectors[;1:8]+rand(nr,8)/nr^2; 1e-8 );
vs = sort( abs( s.values ) );
vs.eid = NULL;
norm( ve[1:4] - vs[1:4] ) / norm( ve[1:4] )?
if ( norm( ve[1:4] - vs[1:4] ) / norm( ve[1:4] ) > 1e-6 ) {
printf( "...failed.\a\n" );
exception();
}
}
printf( "...passed.\n" );
syntax highlighted by Code2HTML, v. 0.9.1