09dbeaddfe7b264ff644584048ebd59d82ff6474
[scilab.git] / scilab / modules / dynamic_link / tests / unit_tests / schur_external.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) ????-2008 - INRIA
4 // Copyright (C) 2009 - DIGITEO
5 //
6 //  This file is distributed under the same license as the Scilab package.
7 // =============================================================================
8
9 // <-- ENGLISH IMPOSED -->
10 // <-- CLI SHELL MODE -->
11
12 //============================================
13 // external with schur 
14 // dynamic link test
15 //============================================
16 cd TMPDIR;
17 mkdir('schur_test');
18 cd('schur_test');
19 A=diag([-0.9,-2,2,0.9]);X=rand(A);A=inv(X)*A*X;
20
21 // The same function in C (a Compiler is required)
22 C=['int mytest(double *EvR, double *EvI) {' //the C code
23    'if (*EvR * *EvR + *EvI * *EvI < 0.9025) return 1;'
24    'else return 0; }';];
25 mputl(C,TMPDIR+'/schur_test/mytest.c');
26
27 //build and link
28 lp=ilib_for_link('mytest','mytest.c',[],'c');
29 link(lp,'mytest','c');
30
31 //run it
32 [U,dim,T]=schur(A,'mytest');
33
34 if (dim <> 2) then pause,end;
35 //============================================