13                  typename Conf::rmat out,
 
   14                  [[maybe_unused]] 
typename Conf::real_t γ) {
 
   15    assert(in.rows() == out.rows());
 
   16    assert(in.cols() == out.cols());
 
   23              .reshaped(in.rows(), in.cols());
 
   30                  typename Conf::crmat in, 
typename Conf::crmat fwd_step,
 
   31                  typename Conf::rmat out, 
typename Conf::rmat fb_step,
 
   32                  [[maybe_unused]] 
typename Conf::real_t γ,
 
   33                  typename Conf::real_t γ_fwd) {
 
   34    assert(in.rows() == fwd_step.rows());
 
   35    assert(in.cols() == fwd_step.cols());
 
   36    assert(in.rows() == out.rows());
 
   37    assert(in.cols() == out.cols());
 
   38    assert(in.rows() == fb_step.rows());
 
   39    assert(in.cols() == fb_step.cols());
 
   43    fb_step = (γ_fwd * fwd_step)
 
   47                  .reshaped(in.rows(), in.cols());
 
constexpr tag_invoke_fn_ns::tag_invoke_fn alpaqa_tag_invoke
 
std::decay_t< decltype(Tag)> tag_t