add wrapper entry points to allow toolboxes to not link against core.lib instead...
[scilab.git] / scilab / modules / arnoldi / tests / nonreg_tests / bug_dsaupd.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2008 - INRIA - Vincent COUVERT <vincent.couvert@inria.fr>
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7
8 // Tests for function dsaupd (added after a bug in the gateway: PutLhsVar missing)
9
10 stacksize(300000);
11
12 N = 1000;
13
14 A = sprand(N, N, 0.01);
15
16 IDO   = 0;
17 BMAT  = 'I'; //standard eigenvalue problem
18 WHICH = "LM";
19 NEV   = 4; //NEVth eigen values are solved
20 TOL   = 1D-10;
21 RESID = zeros(N,1); //
22 NCV   = 10;
23
24 V = zeros(N, NCV);
25
26 ISHIFT = 1;
27 LEVEC  = 0;
28 MXITER = 100; //INPUT
29 NB     = 1;
30 NCONV  = 0;
31 IUPD   = 0;
32 MODE   = 1;
33 NP     = 100;
34 NUMOP  = 0;
35 NUMOPB = 0;
36 NUMREO = 0;
37
38 IPARAM = [ISHIFT, LEVEC,  MXITER, NB, NCONV, IUPD, MODE, NP, NUMOP, NUMOPB, NUMREO];
39
40 IPNTR = zeros(1,14);
41 WORKD = zeros(3, N);
42 WORKL = zeros(1, NCV**2 + 8 * NCV);
43
44 INFO = 0;
45
46 i = 0;
47 tic();
48
49 [IDO,RESID,V,IPARAM,IPNTR,WORKD,WORKL,INFO] = dsaupd(IDO,BMAT,N,WHICH,NEV,TOL,RESID,NCV,V,IPARAM,IPNTR,WORKD,WORKL,INFO);
50
51 while (IDO <> 99) & (IDO <> 3)
52   [IDO,RESID,V,IPARAM,IPNTR,WORKD,WORKL,INFO] = dsaupd(IDO,BMAT,N,WHICH,NEV,TOL,RESID,NCV,V,IPARAM,IPNTR,WORKD,WORKL,INFO);
53   if (IDO == 1) then
54     WORKD(IPNTR(2):(IPNTR(2)+N - 1)) = A * WORKD(IPNTR(1):(IPNTR(1)+N - 1));
55   elseif (IDO == 3) then
56   end;
57
58   i = i + 1;
59 end;
60 t1 = toc();
61 printf("loop %d",i);
62
63 b = rand(N,1);
64 tic();
65 for j = 1:i
66   b = A * b;
67 end
68 toc();