File: bench.m

package info (click to toggle)
ruby-narray 0.6.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 468 kB
  • sloc: ansic: 4,498; ruby: 1,329; python: 91; makefile: 7
file content (61 lines) | stat: -rw-r--r-- 1,276 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#! /bin/octave -qf

arg_list = argv();
TYPE   = arg_list{1};
OP     = arg_list{2};
ARRSZ  = str2num(arg_list{3});
REPEAT = str2num(arg_list{4});
n = ARRSZ;

switch(TYPE)
  case "float"
    a = linspace(0,n-1,n);
    b = linspace(0,n-1,n);
  case "int"
    a = int32(linspace(0,n-1,n));
    b = int32(linspace(0,n-1,n));
  case "complex"
    a = complex(linspace(0,n-1,n));
    b = complex(linspace(0,n-1,n));
  case "float_cross"
    a = linspace(0,n-1,n)';
    b = linspace(0,n-1,n);
  case "float_matrix"
    a = linspace(0,n*n-1,n*n);
    a = rem(a, n+1) + 1;
    a = reshape(a,n,n);
    b = linspace(0,n*n-1,n*n);
    b = rem(b, n-1) + 1;
    b = reshape(b,n,n);
  case "float_solve"
    a = linspace(0,n*n-1,n*n);
    a = rem(a, n+1) + 1;
    a = reshape(a,n,n);
    b = reshape(linspace(1,n*n,n*n),n,n);
endswitch

[t1, u1, s1] = cputime ();
switch(OP)
  case "add"
    for i = 1:REPEAT
      c = a + b;
    endfor
  case "mul"
    for i = 1:REPEAT
      c = a .* b;
    endfor
  case "matmul"
    for i = 1:REPEAT
      c = a * b;
    endfor
    #size(c)
  case "solve"
    for i = 1:REPEAT
      c = a \ b;
    endfor
    #size(c)
endswitch
[t2, u2, s2] = cputime ();

printf ("Octave type=%s size=%d op=%s repeat=%d  Time: %.2f sec", 
	TYPE,ARRSZ,OP,REPEAT,u2 - u1);