message: implement dense apply range
diff: @@ -57,7 +57,19 @@ void simple_apply(std::shared_ptr<const ReferenceExecutor> exec,
  const matrix::Dense<ValueType> *a, AccessorType b,
  matrix::Dense<ValueType> *c)
  {
  - NOT_IMPLEMENTED;
  + for (size_type row = 0; row < c->get_size().num_rows; ++row) {
  + for (size_type col = 0; col < c->get_size().num_cols; ++col) {
  + c->at(row, col) = zero<ValueType>();
  + }
  + }
  +
  + for (size_type row = 0; row < c->get_size().num_rows; ++row) {
  + for (size_type inner = 0; inner < a->get_size().num_cols; ++inner) {
  + for (size_type col = 0; col < c->get_size().num_cols; ++col) {
  + c->at(row, col) += a->at(row, inner) * b(inner, col);
  + }
  + }
  + }
  }
  GKO_INSTANTIATE_FOR_EACH_VALUE_AND_ACCESSOR_TYPE(
  @@ -70,7 +82,28 @@ void apply(std::shared_ptr<const ReferenceExecutor> exec,
  const matrix::Dense<ValueType> *a, AccessorType b,
  const matrix::Dense<ValueType> *beta, matrix::Dense<ValueType> *c)
  {
  - NOT_IMPLEMENTED;
  + if (beta->at(0, 0) != zero<ValueType>()) {
  + for (size_type row = 0; row < c->get_size().num_rows; ++row) {
  + for (size_type col = 0; col < c->get_size().num_cols; ++col) {
  + c->at(row, col) *= beta->at(0, 0);
  + }
  + }
  + } else {
  + for (size_type row = 0; row < c->get_size().num_rows; ++row) {
  + for (size_type col = 0; col < c->get_size().num_cols; ++col) {
  + c->at(row, col) *= zero<ValueType>();
  + }
  + }
  + }
  +
  + for (size_type row = 0; row < c->get_size().num_rows; ++row) {
  + for (size_type inner = 0; inner < a->get_size().num_cols; ++inner) {
  + for (size_type col = 0; col < c->get_size().num_cols; ++col) {
  + c->at(row, col) +=
  + alpha->at(0, 0) * a->at(row, inner) * b(inner, col);
  + }
  + }
  + }
  }
  GKO_INSTANTIATE_FOR_EACH_VALUE_AND_ACCESSOR_TYPE(
  