CppAD Speed: Matrix Multiplication (Double Version)
Keywords: cppad speed: matrix multiplication (double version) speed multiply link_mat_mul specifications implementation

| Prev | Next |  |  |  |  |  | double_mat_mul.cpp |

CppAD Speed: Matrix Multiplication (Double Version)
Specifications
See link_mat_mul .
Implementation `

    # include <cppad/cppad.hpp>
    # include <cppad/speed/mat_sum_sq.hpp>
    # include <cppad/speed/uniform_01.hpp>

    // Note that CppAD uses global_memory at the main program level
    extern bool
         global_onetape, global_atomic, global_optimize;

    bool link_mat_mul(
         size_t                           size     ,
         size_t                           repeat   ,
         CppAD::vector<double>&           x        ,
         CppAD::vector<double>&           z        ,
         CppAD::vector<double>&           dz
    )
    {
         if(global_onetape||global_atomic||global_optimize)
              return false;
         // -----------------------------------------------------
         size_t n = size * size; // number of independent variables
         CppAD::vector<double> y(n);

         while(repeat--)
         {    // get the next matrix
              CppAD::uniform_01(n, x);

              // do computation
              mat_sum_sq(size, x, y, z);

         }
         return true;
    }

`

Input File: speed/double/mat_mul.cpp