= [](const T&, auto&& data_view)
{
decltype(
auto) d = collections::
get<d2_i>(
std::forward<decltype(data_view)>(data_view));
decltype(auto) x = collections::
get<x_i>(
std::forward<decltype(data_view)>(data_view));
decltype(auto) y = collections::
get<y_i>(
std::forward<decltype(data_view)>(data_view));
decltype(auto) z = collections::
get<z_i>(
std::forward<decltype(data_view)>(data_view));
static_assert(values::
fixed<decltype(signed_scale)>);
auto hypot_xy = values::hypot(x,
std::forward<decltype(y)>(y));
auto x2y2 = values::
operation(
std::multiplies{}, hypot_xy, hypot_xy);
return make_ordered_range(
std::forward<decltype(d)>(d),
std::move(theta),
}
Maps a coordinate in Euclidean space to an element.
This function takes d, x, y, and z Cartesian coordinates representing a location on a 4D unit half-cylinder, and converts them to spherical coordinates.