| 26 | |
| 27 | template <typename Scalar, typename DataPointer> |
| 28 | void MakeRuyMatrix(const MatrixParams<Scalar>& params, DataPointer data_ptr, |
| 29 | ruy::Matrix<Scalar>* dst) { |
| 30 | dst->layout.rows = params.rows; |
| 31 | dst->layout.cols = params.cols; |
| 32 | if (params.order == Order::kColMajor) { |
| 33 | dst->layout.order = ruy::Order::kColMajor; |
| 34 | dst->layout.stride = params.rows; |
| 35 | } else { |
| 36 | dst->layout.order = ruy::Order::kRowMajor; |
| 37 | dst->layout.stride = params.cols; |
| 38 | } |
| 39 | // Note that ruy::Matrix::data is a ConstCheckingPtr, not a plain pointer. |
| 40 | // It does care whether we assign to it a Scalar* or a const Scalar*. |
| 41 | dst->data = data_ptr; |
| 42 | dst->zero_point = params.zero_point; |
| 43 | } |
| 44 | |
| 45 | template <typename GemmParamsType, typename RuySpecType> |
| 46 | void MakeRuySpec(const GemmParamsType& params, RuySpecType* ruy_spec) { |
no outgoing calls