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

« back to all changes in this revision

Viewing changes to test/perf/lapack/eig.jl

  • Committer: Package Import Robot
  • Author(s): Sébastien Villemot
  • Date: 2013-11-17 19:32:52 UTC
  • mfrom: (1.1.12)
  • Revision ID: package-import@ubuntu.com-20131117193252-tkrpclguqqebqa35
Tags: 0.2.0+dfsg-3
testsuite-i386.patch: loosen the numerical precision for yet another test.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# Real
2
 
function realeigtest(n, counts)
3
 
        A = rand(n,n)
4
 
        d = Vector{eltype(A)}
5
 
        v = similar(A)
6
 
        for ct = 1:counts
7
 
                d,v = eig(A)
8
 
        end
9
 
        d,v
 
2
function realeigtest(n, iter)
 
3
    A = rand(n,n)
 
4
    d = Vector{eltype(A)}
 
5
    v = similar(A)
 
6
    for i = 1:iter
 
7
        d,v = eig(A)
 
8
    end
 
9
    d,v
10
10
end
11
11
 
12
12
# Symmetric
13
 
function symeigtest(n, counts)
14
 
        A = rand(n,n)
15
 
        A = A + A'
16
 
        d = Vector{eltype(A)}
17
 
        v = similar(A)
18
 
        for ct = 1:counts
19
 
                d,v = eig(A)
20
 
        end
21
 
        d,v
 
13
function symeigtest(n, iter)
 
14
    A = rand(n,n)
 
15
    A = A + A'
 
16
    d = Vector{eltype(A)}
 
17
    v = similar(A)
 
18
    for i = 1:iter
 
19
        d,v = eig(A)
 
20
    end
 
21
    d,v
22
22
end
23
23
 
24
24
# Hermitian
25
 
function hermitianeigtest(n, counts)
26
 
        A = rand(n,n) + im*rand(n,n)
27
 
        A = A + A'
28
 
        d = Vector{eltype(A)}
29
 
        v = similar(A)
30
 
        for ct = 1:counts
31
 
                d,v = eig(A)
32
 
        end
33
 
        d,v
 
25
function hermitianeigtest(n, iter)
 
26
    A = rand(n,n) + im*rand(n,n)
 
27
    A = A + A'
 
28
    d = Vector{eltype(A)}
 
29
    v = similar(A)
 
30
    for i = 1:iter
 
31
        d,v = eig(A)
 
32
    end
 
33
    d,v
34
34
end
35
35
 
36
 
@timeit realeigtest(2, 10_000) "realeig_tiny" "Tiny real eig test"
37
 
@timeit realeigtest(16, 1_000) "realeig_small" "Small real eig test"
38
 
@timeit realeigtest(64, 100) "realeig_medium" "Medium real eig test"
39
 
@timeit realeigtest(256, 5) "realeig_large" "Large real eig test"
40
 
@timeit realeigtest(1024, 1) "realeig_huge" "Huge real eig test"
41
 
 
42
 
@timeit symeigtest(2, 10_000) "symeig_tiny" "Tiny symmetric eig test"
43
 
@timeit symeigtest(16, 1_000) "symeig_small" "Small symmetric eig test"
44
 
@timeit symeigtest(64, 100) "symeig_medium" "Medium symmetric eig test"
45
 
@timeit symeigtest(256, 5) "symeig_large" "Large symmetric eig test"
46
 
@timeit symeigtest(1024, 1) "symeig_huge" "Huge symmetric eig test"
47
 
 
48
 
@timeit hermitianeigtest(2, 10_000) "hermitianeig_tiny" "Tiny Hermitian eig test"
49
 
@timeit hermitianeigtest(16, 1_000) "hermitianeig_small" "Small Hermitian eig test"
50
 
@timeit hermitianeigtest(64, 100) "hermitianeig_medium" "Medium Hermitian eig test"
51
 
@timeit hermitianeigtest(256, 5) "hermitianeig_large" "Large Hermitian eig test"
52
 
@timeit hermitianeigtest(1024, 1) "hermitianeig_huge" "Huge Hermitian eig test"
 
36
problemsizes = [(2, 10^4, "tiny"), (2^4, 10^3, "small"), (2^6, 10^2, "medium"), (2^8, 5, "large"), (2^10, 1, "huge")]
 
37
testdata = [(realeigtest, "realeig", "Real matrix eigenfactorization", problemsizes),
 
38
            (symeigtest, "symeig", "Symmetric matrix eigenfactorization", problemsizes),
 
39
            (hermitianeigtest, "hermitianeig", "Hermitian matrix eigenfactorization", problemsizes)]
 
40
include("../perfgeneric.jl")
 
41