call_id = mat_mul.set(n_left, n_middle, n_right)
template <class Base> size_t atomic_mat_mul<Base>::set( size_t n_left, size_t n_middle, size_t n_right )
R = A * B
A
R
B
# include <cppad/example/atomic_four/mat_mul/mat_mul.hpp> namespace CppAD { // BEGIN_CPPAD_NAMESPACE // BEGIN PROTOTYPE template <class Base> size_t atomic_mat_mul<Base>::set( size_t n_left, size_t n_middle, size_t n_right ) // END PROTOTYPE { // thread size_t thread = thread_alloc::thread_num(); // // work_[thread] if( work_[thread] == nullptr ) work_[thread] = new call_vector; // // call_id size_t call_id = work_[thread]->size(); // // call call_struct call; call.n_left = n_left; call.n_middle = n_middle; call.n_right = n_right; call.thread = thread; // // work_[thread] work_[thread]->push_back( call ); // return call_id; } } // END_CPPAD_NAMESPACE