# Created by Octave 3.2.4, Tue Nov 23 12:51:24 2010 EST <mockbuild@jetta.math.Princeton.EDU.private>
# name: cache
# type: cell
# rows: 3
# columns: 11
# name: <cell-element>
# type: string
# elements: 1
# length: 14
benchmark_dtmm
# name: <cell-element>
# type: string
# elements: 1
# length: 679
 function benchmark_dtmm (m, n, nvec)
 description:
 Dense transposed matrix-matrix and matrix-vector multiplication benchmark.
 This is to test the "compound operators" feature introduced in Octave.

 arguments:
 m = row dimension of matrices
 n = col dimension of matrices
 nvec = number of vector op repeats

 results:
 time_tmm = Time for A'*B (A,B m-by-n matrices)
 time_smm = Time for A'*A
 time_mtm = Time for A*B' (A,B n-by-m matrices)
 time_msm = Time for A*A'
 time_tmv = Time for A'*v nvec-times (A m-by-n matrix)
 ratio_tmv = Ratio to precomputed transpose time
 time_mtv = Time for v*A' nvec-times (A m-by-n matrix)
 ratio_mtv = Ratio to precomputed transpose time


# name: <cell-element>
# type: string
# elements: 1
# length: 80
 function benchmark_dtmm (m, n, nvec)
 description:
 Dense transposed matrix-mat

# name: <cell-element>
# type: string
# elements: 1
# length: 15
benchmark_index
# name: <cell-element>
# type: string
# elements: 1
# length: 608
 function benchmark_index (n, rep)
 description:
 Test speed of array indexing.

 arguments:
 n = array size
 rep = number of repeats

 results:
 time_slice1 = time for a(i:j)
 time_slice1s = time for a(i:k:j)
 time_slice1v = time for a(idx)
 time_slice2c = time for a(:,i:j)
 time_slice2r = time for a(i:j,:)
 time_slice2cv = time for a(:,idx)
 time_slice2rv = time for a(idx,:)
 time_slicenc = time for a(:,:,i:j,k)
 time_slicend = time for a(:,:,k,i:j)
 time_slicens = time for a(i,j,k,:)
 time_spreadr = time for a(ones(1, k), :), a row vector
 time_spreadc = time for a(:, ones(1, k)), a column vector


# name: <cell-element>
# type: string
# elements: 1
# length: 79
 function benchmark_index (n, rep)
 description:
 Test speed of array indexing.

# name: <cell-element>
# type: string
# elements: 1
# length: 17
benchmark_intmath
# name: <cell-element>
# type: string
# elements: 1
# length: 1763
 function benchmark_intmath (n, ratio)
 description:
 Test speed of integer math & conversions.

 arguments:
 n = array size
 ratio = ratio of intmath for generating integers

 results:
 time_uint8_conv = time to convert real vector to uint8
 time_uint8_add = time to add two uint8 vectors
 time_uint8_sub = time to subtract two uint8 vectors
 time_uint8_mul = time to multiply two uint8 vectors
 time_uint8_div = time to divide two uint8 vectors
 time_int8_conv = time to convert real vector to int8
 time_int8_add = time to add two int8 vectors
 time_int8_sub = time to subtract two int8 vectors
 time_int8_mul = time to multiply two int8 vectors
 time_int8_div = time to divide two int8 vectors
 time_uint16_conv = time to convert real vector to uint16
 time_uint16_add = time to add two uint16 vectors
 time_uint16_sub = time to subtract two uint16 vectors
 time_uint16_mul = time to multiply two uint16 vectors
 time_uint16_div = time to divide two uint16 vectors
 time_int16_conv = time to convert real vector to int16
 time_int16_add = time to add two int16 vectors
 time_int16_sub = time to subtract two int16 vectors
 time_int16_mul = time to multiply two int16 vectors
 time_int16_div = time to divide two int16 vectors
 time_uint32_conv = time to convert real vector to uint32
 time_uint32_add = time to add two uint32 vectors
 time_uint32_sub = time to subtract two uint32 vectors
 time_uint32_mul = time to multiply two uint32 vectors
 time_uint32_div = time to divide two uint32 vectors
 time_int32_conv = time to convert real vector to int32
 time_int32_add = time to add two int32 vectors
 time_int32_sub = time to subtract two int32 vectors
 time_int32_mul = time to multiply two int32 vectors
 time_int32_div = time to divide two int32 vectors


# name: <cell-element>
# type: string
# elements: 1
# length: 80
 function benchmark_intmath (n, ratio)
 description:
 Test speed of integer math

# name: <cell-element>
# type: string
# elements: 1
# length: 17
benchmark_permute
# name: <cell-element>
# type: string
# elements: 1
# length: 340
 function benchmark_permute (n)
 description:
 Test speed of array permuting.

 arguments:
 n = dimension size (n^5 is number of elements)

 results:

 time_21345 = time for [2,1,3,4,5] permutation
 time_13425 = time for [1,3,4,2,5] permutation
 time_34125 = time for [3,4,1,2,5] permutation
 time_45123 = time for [4,5,1,2,3] permutation


# name: <cell-element>
# type: string
# elements: 1
# length: 77
 function benchmark_permute (n)
 description:
 Test speed of array permuting.

# name: <cell-element>
# type: string
# elements: 1
# length: 14
benchmark_stmm
# name: <cell-element>
# type: string
# elements: 1
# length: 460
 function benchmark_stmm (n, nvec)
 description:
 Sparse transposed matrix-vector multiplication benchmark.
 This is to test the "compound operators" feature introduced in Octave.

 arguments:
 n = dimension of matrix
 nvec = number of vector op repeats

 results:
 time_tmm = Time for A'*B (B n^2-by-nvec matrix)
 time_tmv = Time for A'*v nvec-times (v vector)
 time_mtm = Time for B*A' (B nvec-by-n^2 matrix)
 time_mtv = Time for v*A' nvec-times (v vector)


# name: <cell-element>
# type: string
# elements: 1
# length: 80
 function benchmark_stmm (n, nvec)
 description:
 Sparse transposed matrix-vecto

# name: <cell-element>
# type: string
# elements: 1
# length: 17
benchutil_average
# name: <cell-element>
# type: string
# elements: 1
# length: 136
 function results = benchutil_average (benchmark, nruns, arg1, arg2, ...)
 Average the benchmark results over a certain number of runs.

# name: <cell-element>
# type: string
# elements: 1
# length: 70
 function results = benchutil_average (benchmark, nruns, arg1, arg2, .

# name: <cell-element>
# type: string
# elements: 1
# length: 21
benchutil_default_arg
# name: <cell-element>
# type: string
# elements: 1
# length: 181
 benchmark_default_arg (name, value)
 set argument to a default value. This function is provided for 
 compatibility with Matlab, which misses Octave's default arguments
 feature.


# name: <cell-element>
# type: string
# elements: 1
# length: 70
 benchmark_default_arg (name, value)
 set argument to a default value.

# name: <cell-element>
# type: string
# elements: 1
# length: 20
benchutil_initialize
# name: <cell-element>
# type: string
# elements: 1
# length: 126
 function benchutil_initialize (mfname)
 initializes a benchmark. The argument passed must be the filename of the
 function.


# name: <cell-element>
# type: string
# elements: 1
# length: 65
 function benchutil_initialize (mfname)
 initializes a benchmark.

# name: <cell-element>
# type: string
# elements: 1
# length: 19
benchutil_is_octave
# name: <cell-element>
# type: string
# elements: 1
# length: 105
 function benchutil_is_octave ()
 returns true if this is Octave. If not, we're probably run on Matlab.


# name: <cell-element>
# type: string
# elements: 1
# length: 65
 function benchutil_is_octave ()
 returns true if this is Octave.

# name: <cell-element>
# type: string
# elements: 1
# length: 20
benchutil_parse_desc
# name: <cell-element>
# type: string
# elements: 1
# length: 133
 function [bench_desc, arg_desc, result_desc] = benchutil_parse_desc (mpath)
 parse the inline comment description from a benchmark


# name: <cell-element>
# type: string
# elements: 1
# length: 80
 function [bench_desc, arg_desc, result_desc] = benchutil_parse_desc (mpath)
 pa

# name: <cell-element>
# type: string
# elements: 1
# length: 17
benchutil_verbose
# name: <cell-element>
# type: string
# elements: 1
# length: 97
 function OLD_FLAG = benchutil_verbose (NEW_FLAG)
 sets or queries the benchmark verbosity flag


# name: <cell-element>
# type: string
# elements: 1
# length: 80
 function OLD_FLAG = benchutil_verbose (NEW_FLAG)
 sets or queries the benchmark

