Speed Testing Derivative of Matrix Multiply
Keywords: speed testing derivative matrix multiply link_mat_mul test multiple prototype purpose return value n repeat x z dz

| Prev | Next |  |  |  |  |  | link_mat_mul |

Speed Testing Derivative of Matrix Multiply
Prototype
`extern bool link_mat_mul(
size_t size ,
size_t repeat ,
CppAD::vector<double>& x ,
CppAD::vector<double>& z ,
CppAD::vector<double>& dz
);
`
Purpose
Each package must define a version of this routine as specified below. This is used by the speed_main program to run the corresponding speed and correctness tests.
Return Value
If this speed test is not yet supported by a particular `package` , the corresponding return value for `link_mat_mul` should be `false`.
n
The argument `n` is the number of rows and columns in the square matrix `x` .
repeat
The argument `repeat` is the number of different argument values that the derivative of `z` (or just the value of `z` ) will be computed.
x
The argument `x` is a vector with `x.size() = size * size` elements. The input value of its elements does not matter. The output value of its elements is the last random matrix that is multiplied and then summed to form `z` ; x i , j = x [ i * s + j ] where `s = size` .
z
The argument `z` is a vector with one element. The input value of the element does not matter. The output of its element the sum of the elements of `y = x * x` ; i.e., y i , j = ∑ k = 0 s -1 x i , k x k , j z = ∑ i = 0 s -1 ∑ j = 0 s -1 y i , j
dz
The argument `dz` is a vector with `dz.size() = size * size` . The input values of its elements do not matter. The output value of its elements form the derivative of `z` with respect to `x` .

Input File: speed/src/link_mat_mul.cpp