~ubuntu-branches/ubuntu/wily/julia/wily

« back to all changes in this revision

Viewing changes to test/blas.jl

  • Committer: Package Import Robot
  • Author(s): Sébastien Villemot
  • Date: 2013-02-11 03:51:26 UTC
  • mfrom: (1.1.4)
  • Revision ID: package-import@ubuntu.com-20130211035126-hap464pbhd97wjbl
Tags: 0.1~20130211.git86fbe98d-1
* New upstream snapshot.
* debian/control:
   + add git to Recommends (for Julia package manager)
   + remove dependencies on libglpk-dev (it moved to its own package)
   + add explicit dependency on libgmp10 (there is no more a wrapper)
* fix-clean-rules.patch: remove patch, applied upstream
* gsvddense_blasint.patch: new patch
* Refresh other patches

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
## BLAS tests - testing the interface code to BLAS routines
 
2
for elty in (Float32, Float64, Complex64, Complex128)
 
3
 
 
4
    o4 = ones(elty, 4)
 
5
    z4 = zeros(elty, 4)
 
6
 
 
7
    I4 = eye(elty, 4)
 
8
    L4 = tril(ones(elty, (4,4)))    
 
9
    U4 = triu(ones(elty, (4,4)))
 
10
    Z4 = zeros(elty, (4,4))
 
11
 
 
12
    elm1 = convert(elty, -1)    
 
13
    el2 = convert(elty, 2)
 
14
    v14 = convert(Vector{elty}, [1:4])
 
15
    v41 = convert(Vector{elty}, [4:-1:1])    
 
16
                                        # gemv
 
17
    @assert all(BLAS.gemv('N', I4, o4) .== o4)
 
18
    @assert all(BLAS.gemv('T', I4, o4) .== o4)
 
19
    @assert all(BLAS.gemv('N', el2, I4, o4) .== el2 * o4)
 
20
    @assert all(BLAS.gemv('T', el2, I4, o4) .== el2 * o4)
 
21
    o4cp = copy(o4)
 
22
    @assert all(BLAS.gemv!('N', one(elty), I4, o4, elm1, o4cp) .== z4)
 
23
    @assert all(o4cp .== z4)
 
24
    o4cp[:] = o4
 
25
    @assert all(BLAS.gemv!('T', one(elty), I4, o4, elm1, o4cp) .== z4)
 
26
    @assert all(o4cp .== z4)
 
27
    @assert all(BLAS.gemv('N', U4, o4) .== v41)
 
28
    @assert all(BLAS.gemv('N', U4, o4) .== v41)
 
29
                                        # gemm
 
30
    @assert all(BLAS.gemm('N', 'N', I4, I4) .== I4)
 
31
    @assert all(BLAS.gemm('N', 'T', I4, I4) .== I4)
 
32
    @assert all(BLAS.gemm('T', 'N', I4, I4) .== I4)
 
33
    @assert all(BLAS.gemm('T', 'T', I4, I4) .== I4)
 
34
    @assert all(BLAS.gemm('N', 'N', el2, I4, I4) .== el2 * I4)    
 
35
    @assert all(BLAS.gemm('N', 'T', el2, I4, I4) .== el2 * I4)    
 
36
    @assert all(BLAS.gemm('T', 'N', el2, I4, I4) .== el2 * I4)    
 
37
    @assert all(BLAS.gemm('T', 'T', el2, I4, I4) .== el2 * I4)
 
38
    I4cp = copy(I4)
 
39
    @assert all(BLAS.gemm!('N', 'N', one(elty), I4, I4, elm1, I4cp) .== Z4)
 
40
    @assert all(I4cp .== Z4)
 
41
    I4cp[:] = I4
 
42
    @assert all(BLAS.gemm!('N', 'T', one(elty), I4, I4, elm1, I4cp) .== Z4)
 
43
    @assert all(I4cp .== Z4)
 
44
    I4cp[:] = I4
 
45
    @assert all(BLAS.gemm!('T', 'N', one(elty), I4, I4, elm1, I4cp) .== Z4)
 
46
    @assert all(I4cp .== Z4)
 
47
    I4cp[:] = I4
 
48
    @assert all(BLAS.gemm!('T', 'T', one(elty), I4, I4, elm1, I4cp) .== Z4)
 
49
    @assert all(I4cp .== Z4)
 
50
    @assert all(BLAS.gemm('N', 'N', I4, U4) .== U4)
 
51
    @assert all(BLAS.gemm('N', 'T', I4, U4) .== L4)
 
52
                                        # gemm compared to (sy)(he)rk
 
53
    if iscomplex(elm1)
 
54
        @assert all(triu(BLAS.herk('U', 'N', U4)) .== triu(BLAS.gemm('N', 'T', U4, U4)))
 
55
        @assert all(tril(BLAS.herk('L', 'N', U4)) .== tril(BLAS.gemm('N', 'T', U4, U4)))
 
56
        @assert all(triu(BLAS.herk('U', 'N', L4)) .== triu(BLAS.gemm('N', 'T', L4, L4)))
 
57
        @assert all(tril(BLAS.herk('L', 'N', L4)) .== tril(BLAS.gemm('N', 'T', L4, L4)))
 
58
        @assert all(triu(BLAS.herk('U', 'T', U4)) .== triu(BLAS.gemm('T', 'N', U4, U4)))
 
59
        @assert all(tril(BLAS.herk('L', 'T', U4)) .== tril(BLAS.gemm('T', 'N', U4, U4)))
 
60
        @assert all(triu(BLAS.herk('U', 'T', L4)) .== triu(BLAS.gemm('T', 'N', L4, L4)))
 
61
        @assert all(tril(BLAS.herk('L', 'T', L4)) .== tril(BLAS.gemm('T', 'N', L4, L4)))
 
62
        ans = similar(L4)
 
63
        @assert all(tril(BLAS.herk('L','T', L4)) .== tril(BLAS.herk!('L', 'T', one(elty), L4, zero(elty), ans)))
 
64
        @assert all(symmetrize!(ans, 'L') .== BLAS.gemm('T', 'N', L4, L4))
 
65
    else
 
66
        @assert all(triu(BLAS.syrk('U', 'N', U4)) .== triu(BLAS.gemm('N', 'T', U4, U4)))
 
67
        @assert all(tril(BLAS.syrk('L', 'N', U4)) .== tril(BLAS.gemm('N', 'T', U4, U4)))
 
68
        @assert all(triu(BLAS.syrk('U', 'N', L4)) .== triu(BLAS.gemm('N', 'T', L4, L4)))
 
69
        @assert all(tril(BLAS.syrk('L', 'N', L4)) .== tril(BLAS.gemm('N', 'T', L4, L4)))
 
70
        @assert all(triu(BLAS.syrk('U', 'T', U4)) .== triu(BLAS.gemm('T', 'N', U4, U4)))
 
71
        @assert all(tril(BLAS.syrk('L', 'T', U4)) .== tril(BLAS.gemm('T', 'N', U4, U4)))
 
72
        @assert all(triu(BLAS.syrk('U', 'T', L4)) .== triu(BLAS.gemm('T', 'N', L4, L4)))
 
73
        @assert all(tril(BLAS.syrk('L', 'T', L4)) .== tril(BLAS.gemm('T', 'N', L4, L4)))
 
74
        ans = similar(L4)
 
75
        @assert all(tril(BLAS.syrk('L','T', L4)) .== tril(BLAS.syrk!('L', 'T', one(elty), L4, zero(elty), ans)))
 
76
        @assert all(symmetrize!(ans, 'L') .== BLAS.gemm('T', 'N', L4, L4))
 
77
    end
 
78
end