From Jason Turner

[mdspan.sub.map.left]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpbl5t13uy/{from.md → to.md} +51 -0
tmp/tmpbl5t13uy/{from.md → to.md} RENAMED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ###### `layout_left` specialization of `submdspan_mapping` <a id="mdspan.sub.map.left">[[mdspan.sub.map.left]]</a>
2
+
3
+ ``` cpp
4
+ template<class Extents>
5
+ template<class... SliceSpecifiers>
6
+ constexpr auto layout_left::mapping<Extents>::submdspan-mapping-impl(
7
+ SliceSpecifiers... slices) const -> see below;
8
+ ```
9
+
10
+ *Returns:*
11
+
12
+ - `submdspan_mapping_result{*this, 0}`, if `Extents::rank() == 0` is
13
+ `true`;
14
+ - otherwise,
15
+ `submdspan_mapping_result{layout_left::mapping(sub_ext), offset}`, if
16
+ `SubExtents::rank() == 0` is `true`;
17
+ - otherwise,
18
+ `submdspan_mapping_result{layout_left::mapping(sub_ext), offset}`, if
19
+ - for each k in the range \[`0`, `SubExtents::rank() - 1)`),
20
+ `is_convertible_v<`Sₖ`, full_extent_t>` is `true`; and
21
+ - for k equal to `SubExtents::rank() - 1`, Sₖ is a unit-stride slice
22
+ for `mapping`;
23
+
24
+ \[*Note 2*: If the above conditions are true, all Sₖ with k larger
25
+ than `SubExtents::rank() - 1` are convertible to
26
+ `index_type`. — *end note*]
27
+ - otherwise,
28
+ ``` cpp
29
+ submdspan_mapping_result{layout_left_padded<S_static>::mapping(sub_ext, stride(u + 1)),
30
+ offset}
31
+ ```
32
+
33
+ if for a value u for which u+1 is the smallest value p larger than
34
+ zero for which Sₚ is a unit-stride slice for `mapping`, the following
35
+ conditions are met:
36
+ - S₀ is a unit-stride slice for `mapping`; and
37
+ - for each k in the range \[u` + 1`, u` + SubExtents::rank() - 1`),
38
+ `is_convertible_v<`Sₖ`, full_extent_t>` is `true`; and
39
+ - for k equal to u` + SubExtents::rank() - 1`, Sₖ is a unit-stride
40
+ slice for `mapping`;
41
+
42
+ and where `S_static` is:
43
+ - `dynamic_extent`, if `static_extent(`k`)` is `dynamic_extent` for
44
+ any k in the range \[`0`, u` + 1`),
45
+ - otherwise, the product of all values `static_extent(`k`)` for k in
46
+ the range \[`0`, u` + 1`);
47
+ - otherwise,
48
+ ``` cpp
49
+ submdspan_mapping_result{layout_stride::mapping(sub_ext, sub_strides), offset}
50
+ ```
51
+