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