@@ -209,7 +209,7 @@ <h2>assert_aligned<a class="headerlink" href="#assert-aligned" title="Permalink
209209< dl class ="field-list simple ">
210210< dt class ="field-odd "> Template Parameters< span class ="colon "> :</ span > </ dt >
211211< dd class ="field-odd "> < ul class ="simple ">
212- < li > < p > < strong > N</ strong > – The alignment constraint for the < a class ="reference internal " href ="#structkernel__float_1_1vector__ptr "> < span class ="std std-ref "> vector_ptr</ span > </ a > . Defaults to KERNEL_FLOAT_MAX_ALIGNMENT. </ p > </ li >
212+ < li > < p > < strong > N</ strong > – The alignment constraint for the < a class ="reference internal " href ="#structkernel__float_1_1vector__ptr "> < span class ="std std-ref "> vector_ptr</ span > </ a > . </ p > </ li >
213213< li > < p > < strong > T</ strong > – The type of the elements pointed to by the raw pointer. </ p > </ li >
214214</ ul >
215215</ dd >
@@ -244,14 +244,20 @@ <h2>vector_ptr<a class="headerlink" href="#vector-ptr" title="Permalink to this
244244</ dd > </ dl >
245245
246246< dl class ="cpp function ">
247- < dt class ="sig sig-object cpp " id ="_CPPv4N12kernel_float10vector_ptr10vector_ptrE12pointer_type ">
248- < span id ="_CPPv3N12kernel_float10vector_ptr10vector_ptrE12pointer_type "> </ span > < span id ="_CPPv2N12kernel_float10vector_ptr10vector_ptrE12pointer_type "> </ span > < span id ="kernel_float::vector_ptr::vector_ptr__pointer_type "> </ span > < span class ="target " id ="structkernel__float_1_1vector__ptr_1ae1bd703dbd3d311110d7edb1ac47559c "> </ span > < span class ="k "> < span class ="pre "> inline</ span > </ span > < span class ="w "> </ span > < span class ="k "> < span class ="pre "> explicit</ span > </ span > < span class ="w "> </ span > < span class ="sig-name descname "> < span class ="n "> < span class ="pre "> vector_ptr</ span > </ span > </ span > < span class ="sig-paren "> (</ span > < span class ="n "> < span class ="pre "> pointer_type</ span > </ span > < span class ="w "> </ span > < span class ="n sig-param "> < span class ="pre "> p</ span > </ span > < span class ="sig-paren "> )</ span > < a class ="headerlink " href ="#_CPPv4N12kernel_float10vector_ptr10vector_ptrE12pointer_type " title ="Permalink to this definition "> </ a > < br /> </ dt >
249- < dd > < p > Constructor from a given pointer. It is up to the user to assert that the pointer is aligned to < code class ="docutils literal notranslate "> < span class ="pre "> Align </ span > </ code > elements . </ p >
247+ < dt class ="sig sig-object cpp " id ="_CPPv4I0_11enable_if_tIXne9Alignmentat1VEiEEN12kernel_float10vector_ptr10vector_ptrE12pointer_type ">
248+ < span id ="_CPPv3I0_11enable_if_tIXne9Alignmentat1VEiEEN12kernel_float10vector_ptr10vector_ptrE12pointer_type "> </ span > < span id ="_CPPv2I0_11enable_if_tIXAlignment != alignof(V)EiEEN12kernel_float10vector_ptr10vector_ptrE12pointer_type "> </ span > < span class ="k "> < span class ="pre "> template</ span > </ span > < span class ="p "> < span class ="pre "> <</ span > </ span > < span class ="k "> < span class ="pre "> typename</ span > </ span > < span class ="w "> </ span > < span class ="sig-name descname "> < span class ="n "> < span class ="pre "> V</ span > </ span > </ span > < span class ="w "> </ span > < span class ="p "> < span class ="pre "> =</ span > </ span > < span class ="w "> </ span > < a class ="reference internal " href ="#_CPPv4I0_6size_t0_6size_tEN12kernel_float10vector_ptrE " title ="kernel_float::vector_ptr::U "> < span class ="n "> < span class ="pre "> U</ span > </ span > </ a > < span class ="p "> < span class ="pre "> ,</ span > </ span > < span class ="w "> </ span > < span class ="n "> < span class ="pre "> enable_if_t</ span > </ span > < span class ="p "> < span class ="pre "> <</ span > </ span > < a class ="reference internal " href ="#_CPPv4I0_6size_t0_6size_tEN12kernel_float10vector_ptrE " title ="kernel_float::vector_ptr::Alignment "> < span class ="n "> < span class ="pre "> Alignment</ span > </ span > </ a > < span class ="w "> </ span > < span class ="o "> < span class ="pre "> !=</ span > </ span > < span class ="w "> </ span > < span class ="k "> < span class ="pre "> alignof</ span > </ span > < span class ="p "> < span class ="pre "> (</ span > </ span > < a class ="reference internal " href ="#_CPPv4I0_11enable_if_tIXne9Alignmentat1VEiEEN12kernel_float10vector_ptr10vector_ptrE12pointer_type " title ="kernel_float::vector_ptr::vector_ptr::V "> < span class ="n "> < span class ="pre "> V</ span > </ span > </ a > < span class ="p "> < span class ="pre "> )</ span > </ span > < span class ="p "> < span class ="pre "> ,</ span > </ span > < span class ="w "> </ span > < span class ="kt "> < span class ="pre "> int</ span > </ span > < span class ="p "> < span class ="pre "> ></ span > </ span > < span class ="w "> </ span > < span class ="p "> < span class ="pre "> =</ span > </ span > < span class ="w "> </ span > < span class ="m "> < span class ="pre "> 0</ span > </ span > < span class ="p "> < span class ="pre "> ></ span > </ span > < br /> < span class ="target " id ="structkernel__float_1_1vector__ptr_1a8a88fc03de7409c0240e20908d77b0b6 "> </ span > < span class ="k "> < span class ="pre "> inline</ span > </ span > < span class ="w "> </ span > < span class ="k "> < span class ="pre "> explicit</ span > </ span > < span class ="w "> </ span > < span class ="sig-name descname "> < span class ="n "> < span class ="pre "> vector_ptr</ span > </ span > </ span > < span class ="sig-paren "> (</ span > < span class ="n "> < span class ="pre "> pointer_type</ span > </ span > < span class ="w "> </ span > < span class ="n sig-param "> < span class ="pre "> p</ span > </ span > < span class ="sig-paren "> )</ span > < a class ="headerlink " href ="#_CPPv4I0_11enable_if_tIXne9Alignmentat1VEiEEN12kernel_float10vector_ptr10vector_ptrE12pointer_type " title ="Permalink to this definition "> </ a > < br /> </ dt >
249+ < dd > < p > Constructor from a given pointer. It is up to the user to assert that the pointer is aligned to < code class ="docutils literal notranslate "> < span class ="pre "> Alignment </ span > </ code > . </ p >
250250</ dd > </ dl >
251251
252252< dl class ="cpp function ">
253- < dt class ="sig sig-object cpp " id ="_CPPv4I0_6size_t_6size_tEN12kernel_float10vector_ptr10vector_ptrE10vector_ptrI2T22N21U2A2E11enable_if_tIFN6detail19alignment_divisibleE2A29AlignmentEiE ">
254- < span id ="_CPPv3I0_6size_t_6size_tEN12kernel_float10vector_ptr10vector_ptrE10vector_ptrI2T22N21U2A2E11enable_if_tIFN6detail19alignment_divisibleE2A29AlignmentEiE "> </ span > < span id ="_CPPv2I0_6size_t_6size_tEN12kernel_float10vector_ptr10vector_ptrE10vector_ptrI2T22N21U2A2E11enable_if_tIFN6detail19alignment_divisibleE2A29AlignmentEiE "> </ span > < span class ="k "> < span class ="pre "> template</ span > </ span > < span class ="p "> < span class ="pre "> <</ span > </ span > < span class ="k "> < span class ="pre "> typename</ span > </ span > < span class ="w "> </ span > < span class ="sig-name descname "> < span class ="n "> < span class ="pre "> T2</ span > </ span > </ span > < span class ="p "> < span class ="pre "> ,</ span > </ span > < span class ="w "> </ span > < span class ="n "> < span class ="pre "> size_t</ span > </ span > < span class ="w "> </ span > < span class ="sig-name descname "> < span class ="n "> < span class ="pre "> N2</ span > </ span > </ span > < span class ="p "> < span class ="pre "> ,</ span > </ span > < span class ="w "> </ span > < span class ="n "> < span class ="pre "> size_t</ span > </ span > < span class ="w "> </ span > < span class ="sig-name descname "> < span class ="n "> < span class ="pre "> A2</ span > </ span > </ span > < span class ="p "> < span class ="pre "> ></ span > </ span > < br /> < span class ="target " id ="structkernel__float_1_1vector__ptr_1aa41ba533734e15692ec076a7d58d2fef "> </ span > < span class ="k "> < span class ="pre "> inline</ span > </ span > < span class ="w "> </ span > < span class ="sig-name descname "> < span class ="n "> < span class ="pre "> vector_ptr</ span > </ span > </ span > < span class ="sig-paren "> (</ span > < a class ="reference internal " href ="#_CPPv4I0_6size_t_6size_tEN12kernel_float10vector_ptr10vector_ptrE10vector_ptrI2T22N21U2A2E11enable_if_tIFN6detail19alignment_divisibleE2A29AlignmentEiE " title ="kernel_float::vector_ptr::vector_ptr "> < span class ="n "> < span class ="pre "> vector_ptr</ span > </ span > </ a > < span class ="p "> < span class ="pre "> <</ span > </ span > < a class ="reference internal " href ="#_CPPv4I0_6size_t_6size_tEN12kernel_float10vector_ptr10vector_ptrE10vector_ptrI2T22N21U2A2E11enable_if_tIFN6detail19alignment_divisibleE2A29AlignmentEiE " title ="kernel_float::vector_ptr::vector_ptr::T2 "> < span class ="n "> < span class ="pre "> T2</ span > </ span > </ a > < span class ="p "> < span class ="pre "> ,</ span > </ span > < span class ="w "> </ span > < a class ="reference internal " href ="#_CPPv4I0_6size_t_6size_tEN12kernel_float10vector_ptr10vector_ptrE10vector_ptrI2T22N21U2A2E11enable_if_tIFN6detail19alignment_divisibleE2A29AlignmentEiE " title ="kernel_float::vector_ptr::vector_ptr::N2 "> < span class ="n "> < span class ="pre "> N2</ span > </ span > </ a > < span class ="p "> < span class ="pre "> ,</ span > </ span > < span class ="w "> </ span > < a class ="reference internal " href ="#_CPPv4I0_6size_t0_6size_tEN12kernel_float10vector_ptrE " title ="kernel_float::vector_ptr::U "> < span class ="n "> < span class ="pre "> U</ span > </ span > </ a > < span class ="p "> < span class ="pre "> ,</ span > </ span > < span class ="w "> </ span > < a class ="reference internal " href ="#_CPPv4I0_6size_t_6size_tEN12kernel_float10vector_ptr10vector_ptrE10vector_ptrI2T22N21U2A2E11enable_if_tIFN6detail19alignment_divisibleE2A29AlignmentEiE " title ="kernel_float::vector_ptr::vector_ptr::A2 "> < span class ="n "> < span class ="pre "> A2</ span > </ span > </ a > < span class ="p "> < span class ="pre "> ></ span > </ span > < span class ="w "> </ span > < span class ="n sig-param "> < span class ="pre "> p</ span > </ span > , < span class ="n "> < span class ="pre "> enable_if_t</ span > </ span > < span class ="p "> < span class ="pre "> <</ span > </ span > < span class ="n "> < span class ="pre "> detail</ span > </ span > < span class ="p "> < span class ="pre "> ::</ span > </ span > < span class ="n "> < span class ="pre "> alignment_divisible</ span > </ span > < span class ="p "> < span class ="pre "> (</ span > </ span > < a class ="reference internal " href ="#_CPPv4I0_6size_t_6size_tEN12kernel_float10vector_ptr10vector_ptrE10vector_ptrI2T22N21U2A2E11enable_if_tIFN6detail19alignment_divisibleE2A29AlignmentEiE " title ="kernel_float::vector_ptr::vector_ptr::A2 "> < span class ="n "> < span class ="pre "> A2</ span > </ span > </ a > < span class ="p "> < span class ="pre "> ,</ span > </ span > < span class ="w "> </ span > < a class ="reference internal " href ="#_CPPv4I0_6size_t0_6size_tEN12kernel_float10vector_ptrE " title ="kernel_float::vector_ptr::Alignment "> < span class ="n "> < span class ="pre "> Alignment</ span > </ span > </ a > < span class ="p "> < span class ="pre "> )</ span > </ span > < span class ="p "> < span class ="pre "> ,</ span > </ span > < span class ="w "> </ span > < span class ="kt "> < span class ="pre "> int</ span > </ span > < span class ="p "> < span class ="pre "> ></ span > </ span > < span class ="w "> </ span > < span class ="p "> < span class ="pre "> =</ span > </ span > < span class ="w "> </ span > < span class ="p "> < span class ="pre "> {</ span > </ span > < span class ="p "> < span class ="pre "> }</ span > </ span > < span class ="sig-paren "> )</ span > < a class ="headerlink " href ="#_CPPv4I0_6size_t_6size_tEN12kernel_float10vector_ptr10vector_ptrE10vector_ptrI2T22N21U2A2E11enable_if_tIFN6detail19alignment_divisibleE2A29AlignmentEiE " title ="Permalink to this definition "> </ a > < br /> </ dt >
253+ < dt class ="sig sig-object cpp " id ="_CPPv4I0_11enable_if_tIXeq9Alignmentat1VEiEEN12kernel_float10vector_ptr10vector_ptrE12pointer_type ">
254+ < span id ="_CPPv3I0_11enable_if_tIXeq9Alignmentat1VEiEEN12kernel_float10vector_ptr10vector_ptrE12pointer_type "> </ span > < span id ="_CPPv2I0_11enable_if_tIXAlignment == alignof(V)EiEEN12kernel_float10vector_ptr10vector_ptrE12pointer_type "> </ span > < span class ="k "> < span class ="pre "> template</ span > </ span > < span class ="p "> < span class ="pre "> <</ span > </ span > < span class ="k "> < span class ="pre "> typename</ span > </ span > < span class ="w "> </ span > < span class ="sig-name descname "> < span class ="n "> < span class ="pre "> V</ span > </ span > </ span > < span class ="w "> </ span > < span class ="p "> < span class ="pre "> =</ span > </ span > < span class ="w "> </ span > < a class ="reference internal " href ="#_CPPv4I0_6size_t0_6size_tEN12kernel_float10vector_ptrE " title ="kernel_float::vector_ptr::U "> < span class ="n "> < span class ="pre "> U</ span > </ span > </ a > < span class ="p "> < span class ="pre "> ,</ span > </ span > < span class ="w "> </ span > < span class ="n "> < span class ="pre "> enable_if_t</ span > </ span > < span class ="p "> < span class ="pre "> <</ span > </ span > < a class ="reference internal " href ="#_CPPv4I0_6size_t0_6size_tEN12kernel_float10vector_ptrE " title ="kernel_float::vector_ptr::Alignment "> < span class ="n "> < span class ="pre "> Alignment</ span > </ span > </ a > < span class ="w "> </ span > < span class ="o "> < span class ="pre "> ==</ span > </ span > < span class ="w "> </ span > < span class ="k "> < span class ="pre "> alignof</ span > </ span > < span class ="p "> < span class ="pre "> (</ span > </ span > < a class ="reference internal " href ="#_CPPv4I0_11enable_if_tIXeq9Alignmentat1VEiEEN12kernel_float10vector_ptr10vector_ptrE12pointer_type " title ="kernel_float::vector_ptr::vector_ptr::V "> < span class ="n "> < span class ="pre "> V</ span > </ span > </ a > < span class ="p "> < span class ="pre "> )</ span > </ span > < span class ="p "> < span class ="pre "> ,</ span > </ span > < span class ="w "> </ span > < span class ="kt "> < span class ="pre "> int</ span > </ span > < span class ="p "> < span class ="pre "> ></ span > </ span > < span class ="w "> </ span > < span class ="p "> < span class ="pre "> =</ span > </ span > < span class ="w "> </ span > < span class ="m "> < span class ="pre "> 0</ span > </ span > < span class ="p "> < span class ="pre "> ></ span > </ span > < br /> < span class ="target " id ="structkernel__float_1_1vector__ptr_1a8a88fc03de7409c0240e20908d77b0b6 "> </ span > < span class ="k "> < span class ="pre "> inline</ span > </ span > < span class ="w "> </ span > < span class ="sig-name descname "> < span class ="n "> < span class ="pre "> vector_ptr</ span > </ span > </ span > < span class ="sig-paren "> (</ span > < span class ="n "> < span class ="pre "> pointer_type</ span > </ span > < span class ="w "> </ span > < span class ="n sig-param "> < span class ="pre "> p</ span > </ span > < span class ="sig-paren "> )</ span > < a class ="headerlink " href ="#_CPPv4I0_11enable_if_tIXeq9Alignmentat1VEiEEN12kernel_float10vector_ptr10vector_ptrE12pointer_type " title ="Permalink to this definition "> </ a > < br /> </ dt >
255+ < dd > < p > Constructor from a given pointer. This assumes that the alignment of the pointer equals < code class ="docutils literal notranslate "> < span class ="pre "> Alignment</ span > </ code > . </ p >
256+ </ dd > </ dl >
257+
258+ < dl class ="cpp function ">
259+ < dt class ="sig sig-object cpp " id ="_CPPv4I0_6size_t_6size_t_11enable_if_tIFN6detail19alignment_divisibleE2A29AlignmentEiEEN12kernel_float10vector_ptr10vector_ptrE10vector_ptrI2T22N21U2A2E ">
260+ < span id ="_CPPv3I0_6size_t_6size_t_11enable_if_tIFN6detail19alignment_divisibleE2A29AlignmentEiEEN12kernel_float10vector_ptr10vector_ptrE10vector_ptrI2T22N21U2A2E "> </ span > < span id ="_CPPv2I0_6size_t_6size_t_11enable_if_tIFN6detail19alignment_divisibleE2A29AlignmentEiEEN12kernel_float10vector_ptr10vector_ptrE10vector_ptrI2T22N21U2A2E "> </ span > < span class ="k "> < span class ="pre "> template</ span > </ span > < span class ="p "> < span class ="pre "> <</ span > </ span > < span class ="k "> < span class ="pre "> typename</ span > </ span > < span class ="w "> </ span > < span class ="sig-name descname "> < span class ="n "> < span class ="pre "> T2</ span > </ span > </ span > < span class ="p "> < span class ="pre "> ,</ span > </ span > < span class ="w "> </ span > < span class ="n "> < span class ="pre "> size_t</ span > </ span > < span class ="w "> </ span > < span class ="sig-name descname "> < span class ="n "> < span class ="pre "> N2</ span > </ span > </ span > < span class ="p "> < span class ="pre "> ,</ span > </ span > < span class ="w "> </ span > < span class ="n "> < span class ="pre "> size_t</ span > </ span > < span class ="w "> </ span > < span class ="sig-name descname "> < span class ="n "> < span class ="pre "> A2</ span > </ span > </ span > < span class ="p "> < span class ="pre "> ,</ span > </ span > < span class ="w "> </ span > < span class ="n "> < span class ="pre "> enable_if_t</ span > </ span > < span class ="p "> < span class ="pre "> <</ span > </ span > < span class ="n "> < span class ="pre "> detail</ span > </ span > < span class ="p "> < span class ="pre "> ::</ span > </ span > < span class ="n "> < span class ="pre "> alignment_divisible</ span > </ span > < span class ="p "> < span class ="pre "> (</ span > </ span > < a class ="reference internal " href ="#_CPPv4I0_6size_t_6size_t_11enable_if_tIFN6detail19alignment_divisibleE2A29AlignmentEiEEN12kernel_float10vector_ptr10vector_ptrE10vector_ptrI2T22N21U2A2E " title ="kernel_float::vector_ptr::vector_ptr::A2 "> < span class ="n "> < span class ="pre "> A2</ span > </ span > </ a > < span class ="p "> < span class ="pre "> ,</ span > </ span > < span class ="w "> </ span > < a class ="reference internal " href ="#_CPPv4I0_6size_t0_6size_tEN12kernel_float10vector_ptrE " title ="kernel_float::vector_ptr::Alignment "> < span class ="n "> < span class ="pre "> Alignment</ span > </ span > </ a > < span class ="p "> < span class ="pre "> )</ span > </ span > < span class ="p "> < span class ="pre "> ,</ span > </ span > < span class ="w "> </ span > < span class ="kt "> < span class ="pre "> int</ span > </ span > < span class ="p "> < span class ="pre "> ></ span > </ span > < span class ="w "> </ span > < span class ="p "> < span class ="pre "> =</ span > </ span > < span class ="w "> </ span > < span class ="m "> < span class ="pre "> 0</ span > </ span > < span class ="p "> < span class ="pre "> ></ span > </ span > < br /> < span class ="target " id ="structkernel__float_1_1vector__ptr_1abf8d2d9082972d8f02ab3512a7256d21 "> </ span > < span class ="k "> < span class ="pre "> inline</ span > </ span > < span class ="w "> </ span > < span class ="sig-name descname "> < span class ="n "> < span class ="pre "> vector_ptr</ span > </ span > </ span > < span class ="sig-paren "> (</ span > < a class ="reference internal " href ="#_CPPv4I0_6size_t_6size_t_11enable_if_tIFN6detail19alignment_divisibleE2A29AlignmentEiEEN12kernel_float10vector_ptr10vector_ptrE10vector_ptrI2T22N21U2A2E " title ="kernel_float::vector_ptr::vector_ptr "> < span class ="n "> < span class ="pre "> vector_ptr</ span > </ span > </ a > < span class ="p "> < span class ="pre "> <</ span > </ span > < a class ="reference internal " href ="#_CPPv4I0_6size_t_6size_t_11enable_if_tIFN6detail19alignment_divisibleE2A29AlignmentEiEEN12kernel_float10vector_ptr10vector_ptrE10vector_ptrI2T22N21U2A2E " title ="kernel_float::vector_ptr::vector_ptr::T2 "> < span class ="n "> < span class ="pre "> T2</ span > </ span > </ a > < span class ="p "> < span class ="pre "> ,</ span > </ span > < span class ="w "> </ span > < a class ="reference internal " href ="#_CPPv4I0_6size_t_6size_t_11enable_if_tIFN6detail19alignment_divisibleE2A29AlignmentEiEEN12kernel_float10vector_ptr10vector_ptrE10vector_ptrI2T22N21U2A2E " title ="kernel_float::vector_ptr::vector_ptr::N2 "> < span class ="n "> < span class ="pre "> N2</ span > </ span > </ a > < span class ="p "> < span class ="pre "> ,</ span > </ span > < span class ="w "> </ span > < a class ="reference internal " href ="#_CPPv4I0_6size_t0_6size_tEN12kernel_float10vector_ptrE " title ="kernel_float::vector_ptr::U "> < span class ="n "> < span class ="pre "> U</ span > </ span > </ a > < span class ="p "> < span class ="pre "> ,</ span > </ span > < span class ="w "> </ span > < a class ="reference internal " href ="#_CPPv4I0_6size_t_6size_t_11enable_if_tIFN6detail19alignment_divisibleE2A29AlignmentEiEEN12kernel_float10vector_ptr10vector_ptrE10vector_ptrI2T22N21U2A2E " title ="kernel_float::vector_ptr::vector_ptr::A2 "> < span class ="n "> < span class ="pre "> A2</ span > </ span > </ a > < span class ="p "> < span class ="pre "> ></ span > </ span > < span class ="w "> </ span > < span class ="n sig-param "> < span class ="pre "> p</ span > </ span > < span class ="sig-paren "> )</ span > < a class ="headerlink " href ="#_CPPv4I0_6size_t_6size_t_11enable_if_tIFN6detail19alignment_divisibleE2A29AlignmentEiEEN12kernel_float10vector_ptr10vector_ptrE10vector_ptrI2T22N21U2A2E " title ="Permalink to this definition "> </ a > < br /> </ dt >
255261< dd > < p > Constructs a < a class ="reference internal " href ="#structkernel__float_1_1vector__ptr "> < span class ="std std-ref "> vector_ptr</ span > </ a > from another < a class ="reference internal " href ="#structkernel__float_1_1vector__ptr "> < span class ="std std-ref "> vector_ptr</ span > </ a > with potentially different alignment and type. This constructor only allows conversion if the alignment of the source is greater than or equal to the alignment of the target. </ p >
256262</ dd > </ dl >
257263
0 commit comments