test_1.f90 Source File


Contents

Source Code


Source Code

program test_1
use M_matrix, only : lala, get_from_lala, put_into_lala
implicit none
integer,parameter :: lda=10
integer           :: m,n, i,j, ierr
doubleprecision   :: arr(lda,lda),x(lda,lda)
logical           :: logs=.false.
   !!logs=.true.
   !!call lala(2000,echo=.true.)
   call lala( 'display(ones(80,1)''*46)')
   call lala( 'display(''test_1'');clear;')
   if(logs)call lala( 'diary(''test_1.log'');')
   call lala( [ character(len=256) :: &
'// -----------------------------------------------------------------            ',&
'titles=[''GNP deflator''                                                          ',&
'        ''GNP         ''                                                          ',&
'        ''Unemployment''                                                          ',&
'        ''Armed Force ''                                                          ',&
'        ''Population  ''                                                          ',&
'        ''Year        ''                                                          ',&
'        ''Employment  ''];                                                        ',&
'// -----------------------------------------------------------------            ',&
'data = [                                                                        ',&
'    83.0  234.289  235.6  159.0  107.608  1947  60.323                          ',&
'    88.5  259.426  232.5  145.6  108.632  1948  61.122                          ',&
'    88.2  258.054  368.2  161.6  109.773  1949  60.171                          ',&
'    89.5  284.599  335.1  165.0  110.929  1950  61.187                          ',&
'    96.2  328.975  209.9  309.9  112.075  1951  63.221                          ',&
'    98.1  346.999  193.2  359.4  113.270  1952  63.639                          ',&
'    99.0  365.385  187.0  354.7  115.094  1953  64.989                          ',&
'   100.0  363.112  357.8  335.0  116.219  1954  63.761                          ',&
'   101.2  397.469  290.4  304.8  117.388  1955  66.019                          ',&
'   104.6  419.180  282.2  285.7  118.734  1956  67.857                          ',&
'   108.4  442.769  293.6  279.8  120.445  1957  68.169                          ',&
'   110.8  444.546  468.1  263.7  121.950  1958  66.513                          ',&
'   112.6  482.704  381.3  255.2  123.366  1959  68.655                          ',&
'   114.2  502.601  393.1  251.4  125.368  1960  69.564                          ',&
'   115.7  518.173  480.6  257.2  127.852  1961  69.331                          ',&
'   116.9  554.894  400.7  282.7  130.081  1962  70.551                          ',&
'   ];                                                                           ',&
'// -----------------------------------------------------------------            ',&
'short                                                                           ',&
'X = data;                                                                       ',&
'[n,p] = shape(X)                                                                 ',&
'mu = ones(1,n)*X/n                                                              ',&
'X = X - ones(n,1)*mu;  X = X/diag(sqrt(diag(X''*X)))                            ',&
'corr = X''*X                                                                    ',&
'y = data(:,p); X = [ones(y) data(:,1:p-1)];                                     ',&
'long e                                                                          ',&
'beta = X\y                                                                      ',&
'// -----------------------------------------------------------------            ',&
'display(''EXPECTED and BETA should be the same'');                                ',&
'eps                                                                             ',&
'expected = [ ...                                                                ',&
'        -3.482258634594421D+03                                                  ',&
'         1.506187227124484D-02                                                  ',&
'        -3.581917929257409D-02                                                  ',&
'        -2.020229803816908D-02                                                  ',&
'        -1.033226867173703D-02                                                  ',&
'        -5.110410565317738D-02                                                  ',&
'         1.829151464612817D+00                                                  ',&
'];                                                                              ',&
'delta=expected-beta                                                             ',&
'<M,N>=shape(expected);                                                           ',&
'for i=1:M, for j=1:N, if abs(delta(i,j))<=eps, delta(i,j)=0; else, delta(i,j)=-1;',&
'delta                                                                           ',&
'if delta=zeros(M,N),display(''PASSED''),else,display(''FAILED'')                    ',&
'// -----------------------------------------------------------------            ',&
''])
end program test_1