Fixed maps provide just forward and transpose actions with caller-owned scratch.
More...
template<typename Map>
{
{ map.make_workspace() } -> std::same_as<DeformationWorkspace<Map>>;
}) &&
requires(
const Map& map, std::span<const double> input, std::span<double> output,
DeformationWorkspace<Map>& workspace)
{
{ map.apply(input, output, workspace) } -> std::same_as<DeformationStatus>;
{ map.apply_transpose(input, output, workspace) } -> std::same_as<DeformationStatus>;
}
Fixed maps provide just forward and transpose actions with caller-owned scratch.