File: Bench.pm

package info (click to toggle)
pdl 1%3A2.025-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 11,768 kB
  • sloc: perl: 43,919; fortran: 13,113; ansic: 9,366; makefile: 37; sh: 32; sed: 6
file content (39 lines) | stat: -rw-r--r-- 985 bytes parent folder | download | duplicates (9)
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
# Old results: approx. 1.91_03: 34 secs (512, 10 iter)
# With simply folded-out threading: 3.4 secs (10fold!)

# For 512,30iter:

package PDL::Bench;

use vars qw(@ISA @EXPORT $AUTOLOAD);

require Exporter;
require DynaLoader;

@ISA = qw(Exporter DynaLoader);
# Items to export into callers namespace by default. Note: do not export
# names by default without a very good reason. Use EXPORT_OK instead.
# Do not simply export all your public functions/methods/constants.
@EXPORT = qw(
	do_benchmark
);

bootstrap PDL::Bench;

use Benchmark;

sub do_benchmark {
	$size = 512;
	$niter = 80;
	$piddle = (PDL->zeroes($size,$size));
	$dref = ${$piddle->get_dataref()};
	timethese($niter, {
#		'With double piddle' => 'for($i=0; $i<100; $i++) {$piddle++}',
		'With double piddle' => '$piddle++;',
		'C using ++' => 'c_use_pp($dref)',
		'C using foo = bar + baz' => 'c_use_add($dref,$dref,$dref)',
		'C using incrs and foo = bar + baz' => 'c_use_add_incr($dref,$dref,$dref,1,1,1)'
	});
}

1;