40 virtual std::shared_ptr<Op_Base::workbench_t>
create_workbench([[maybe_unused]] uint32_t input_size,
41 [[maybe_unused]]
const std::shared_ptr<param_base_t> params,
44 assert(input_size > 0);
45 assert(
nullptr != params);
49 return std::make_shared<workbench_t>();
52 virtual size_t execute([[maybe_unused]] std::shared_ptr<Op_Base::workbench_t> pwb,
54 const std::shared_ptr<param_base_t> params,
57 assert(
nullptr != pwb);
58 assert(
nullptr != params);
59 const auto& layer = std::dynamic_pointer_cast<const params_t>(params);
64 output = (layer->weight * input).colwise() + layer->bias;