Type | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|
doubleprecision | :: | arr(lda,lda) | ||||
integer | :: | i | ||||
integer | :: | ierr | ||||
integer | :: | j | ||||
integer, | parameter | :: | lda | = | 10 | |
logical | :: | logs | = | .false. |
logs=.true. call lala(2000,echo=.true.) |
|
integer | :: | m | ||||
integer | :: | n | ||||
doubleprecision | :: | x(lda,lda) |
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