Coverage for cuda / core / _layout.pxd: 80.30%
396 statements
« prev ^ index » next coverage.py v7.13.4, created at 2026-03-08 01:07 +0000
« prev ^ index » next coverage.py v7.13.4, created at 2026-03-08 01:07 +0000
1# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2#
3# SPDX-License-Identifier: Apache-2.0
5cimport cython
6from cython.operator cimport dereference as deref
8from libc.stdint cimport int64_t, int32_t, uint32_t, uint64_t, intptr_t
9from libcpp cimport vector
11ctypedef int64_t extent_t
12ctypedef int64_t stride_t
13ctypedef int32_t axis_t
15ctypedef uint64_t axes_mask_t # MUST be exactly STRIDED_LAYOUT_MAX_NDIM bits wide
16ctypedef uint32_t property_mask_t
18ctypedef vector.vector[stride_t] extents_strides_t
19ctypedef vector.vector[axis_t] axis_vec_t
21from cuda.core._utils cimport cuda_utils
24ctypedef fused integer_t:
25 int64_t
26 int32_t
29cdef extern from "_include/layout.hpp":
31 cdef int STRIDED_LAYOUT_MAX_NDIM
32 cdef axes_mask_t AXES_MASK_ALL
33 int64_t _c_abs(int64_t x) nogil
34 void _order_from_strides(axis_vec_t& indices, extent_t* extent_t, stride_t* stride_t, int ndim) except + nogil
35 void _swap(extents_strides_t &a, extents_strides_t &b) noexcept nogil
36 void _swap(int64_t* a, int64_t* b) noexcept nogil
37 void _swap(int a, int b) noexcept nogil
38 void _swap(axis_vec_t &a, axis_vec_t &b) noexcept nogil
41cdef enum OrderFlag:
42 ORDER_NONE = 0
43 ORDER_C = 1
44 ORDER_F = 2
45 ORDER_PERM = 3
48cdef enum Property:
49 PROP_IS_UNIQUE = 1 << 0
50 PROP_IS_CONTIGUOUS_C = 1 << 1
51 PROP_IS_CONTIGUOUS_F = 1 << 2
52 PROP_IS_CONTIGUOUS_ANY = 1 << 3
53 PROP_IS_DENSE = 1 << 4
54 PROP_OFFSET_BOUNDS = 1 << 5
55 PROP_REQUIRED_SIZE_IN_BYTES = 1 << 6
56 PROP_SHAPE = 1 << 7
57 PROP_STRIDES = 1 << 8
58 PROP_STRIDES_IN_BYTES = 1 << 9
59 PROP_STRIDE_ORDER = 1 << 10
60 PROP_VOLUME = 1 << 11
63cdef struct BaseLayout:
64 # A struct holding the shape and strides for the layout.
65 # Use ``init_base_layout`` to initialize the layout, it will
66 # set the ``shape`` and ``strides`` pointers to point to
67 # ndim contigious integer arrays.
68 # The ``shape`` pointer must not be NULL, the ``strides`` can be
69 # set to NULL by the user to indicate C-contiguous layout.
70 # Uses single _mem allocation to reduce overhead
71 # (allocation and exceptions checks).
73 extents_strides_t _mem
74 extent_t* shape
75 stride_t* strides
76 int ndim
79@cython.final
80cdef class _StridedLayout:
82 # Definition
83 cdef:
84 BaseLayout base
86 readonly:
87 int itemsize
88 stride_t slice_offset
90 # Lazy properties computed from the defining values.
91 cdef:
92 # Set to 0 to invalidate all properties,
93 # whenever a defining value is changed
94 property_mask_t _prop_mask
96 # C and Python properties
97 property_mask_t _boolean_props
98 int64_t _required_size_in_bytes
99 stride_t _min_offset
100 stride_t _max_offset
101 int64_t _volume
103 # Python properties
104 tuple _py_shape
105 tuple _py_strides
106 tuple _py_strides_in_bytes
107 tuple _py_stride_order
109 # ==============================
110 # Initialization
111 # ==============================
113 cdef inline int _init(_StridedLayout self, BaseLayout& base, int itemsize, bint divide_strides=False) except -1 nogil:
114 if itemsize <= 0: 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepe5i4iqioipimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWi6iShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h)h*h+h}hli7iti2idiOhPhQhRh^h_h
115 raise ValueError("itemsize must be positive")
117 if base.strides != NULL and divide_strides: 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepe5i4iqioipimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWi6iShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h)h*h+h}hli7iti2idiOhPhQhRh^h_h
118 _divide_strides(base, itemsize) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bgihiiijiki6ili7iti
120 self.itemsize = itemsize 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepe5i4iqioipimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWiShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h)h*h+h}hliti2idiOhPhQhRh^h_h
121 self.slice_offset = 0 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepe5i4iqioipimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWiShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h)h*h+h}hliti2idiOhPhQhRh^h_h
123 _swap_layout(self.base, base) 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepe5i4iqioipimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWiShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h)h*h+h}hliti2idiOhPhQhRh^h_h
124 return 0 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepe5i4iqioipimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWiShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h)h*h+h}hliti2idiOhPhQhRh^h_h
126 cdef inline stride_t _init_dense(_StridedLayout self, BaseLayout& base, int itemsize, OrderFlag order_flag, axis_vec_t* stride_order=NULL) except -1 nogil:
127 if itemsize <= 0: 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperisiminieifi~haibicimgngghogSfTf(gUfEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h`h{h)h*h+h
128 raise ValueError("itemsize must be positive")
130 cdef stride_t volume
131 if order_flag == ORDER_C: 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperisiminieifi~haibicimgngghogSfTf(gUfEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h`h{h)h*h+h
132 volume = _dense_strides_c(base) 2vg5fLdmh%gPfdfefScTc.cccMdmfDc/e:emcEc;eMb2eOdFc?eGcnc7eXg.gdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a nfkeof#cpfYcPdzf$c@eLcoh'g+fQdhdHcQb9e#eIcJcRbldoc%emdSbFeodTbpcIeJeSdpdKcqcrc(eMeUb`brdOescPetcVb{b|ble}boeperiniei~haimgngghogSfTf(gUfEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbwh;gSe@fAfue/crf[c'cDfEf]c-fFfuf^c(c!gch9fcdqg)g1fkh]e(dUg#g/fvfNcTgOc)cfh+g_e?g*cPcIf|e2f_c,gth$f)d~e:cmb{c`fJf+c*d;c4fLf,cOf-chhyhOgugahuhAhihbb4 ygHgJgCgzgrg} wd%fO d }fV Wf~ sbkcac5 ~f:flcw q Qc- ,e. tbs 'fv $ K (b[ t l b ucB C f ggub^ )bgbvb_ ) r ; W P wbQ Uebcx *bxb(fvcc * igy ` S T L jf)fh I i j wcXeYe% ybzbk = 0c0 1 J m 2 1c? n e xcM Zeo p z 3 g @ ibbgqh-e.eeg-gXfycwexeyezcAcBcCckfBeCezdAd+d,dbfGb+b,b-bBd;d=dHb[d]d^d_dIbJbKb.b/b:b;bFd{d|dLb=b?b@b[b]b^bRcHdIdcedeeefe_bShThUh/hVhWhXh:h4h5h6h?h7h8h9h@h`h{h)h+h
133 elif order_flag == ORDER_F:
134 volume = _dense_strides_f(base) 2lhwg6fffgflfNd1e=e3e4e5e6e8ewfxfyf}cQfRfph*fid!ejdkd$endGe'eHeRdKeLeqd)eNesdTdUdmenesimifibicivh?fBfCf,fsftfGfHfdhpgjh!f.feh*g^e=g`e*e{e}e3fsh#f`cafVf{fKfMfNfxhzhPgBhGgIgfbDg# |fxd, ~ sb[fkc+eA lcag6 - abtb(bfg] ub)bvbD ydTeE _ ) ; wbbcR ( *bhgF G xbX * VeH Y WeZ { / ybzb| = 7 ? U 8 0ez 9 @ N ! 2ccgdgrhvezeAeDeEeYf-d.d/d:d?d@dCd`dDdEdcf}d~daeGdbeJdgeheieKdYhZh0h;h1h2h3h=h!h#h$h[h%h'h(h]h*h
135 elif order_flag == ORDER_PERM:
136 if stride_order == NULL: 2bhUc3c4c5c=c6c?c7c8cu a kbOgugPgbb4 fb} # O d V , A 5 w 6 q . abs v $ K [ ] t l b B C f ^ gbD E r W P Q x R ( F G X c y ` S T L H Y h I i j % Z { / | k 0 1 J m 2 7 n e M U 8 o p 3 9 g N !
137 raise ValueError("stride_order is required for ORDER_PERM")
138 volume = _dense_strides_in_order(base, deref(stride_order)) 2bhUc3c4c5c=c6c?c7c8cu a kbOgugPgbb4 fb} # O d V , A 5 w 6 q . abs v $ K [ ] t l b B C f ^ gbD E r W P Q x R ( F G X c y ` S T L H Y h I i j % Z { / | k 0 1 J m 2 7 n e M U 8 o p 3 9 g N !
139 else:
140 raise ValueError("The stride_order must be 'C', 'F', or a permutation.")
142 self.itemsize = itemsize 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperisiminieifi~haibicimgngghogSfTf(gUfEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h`h{h)h*h+h
143 self.slice_offset = 0 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperisiminieifi~haibicimgngghogSfTf(gUfEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h`h{h)h*h+h
144 _swap_layout(self.base, base) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperisiminieifi~haibicimgngghogSfTf(gUfEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h`h{h)h*h+h
145 self._volume = volume 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperisiminieifi~haibicimgngghogSfTf(gUfEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h`h{h)h*h+h
146 _mark_property_valid(self, PROP_VOLUME) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperisiminieifi~haibicimgngghogSfTf(gUfEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h`h{h)h*h+h
147 return 0 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperisiminieifi~haibicimgngghogSfTf(gUfEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h`h{h)h*h+h
149 cdef inline int init_from_ptr(_StridedLayout self, int ndim, extent_t* shape, stride_t* strides, int itemsize, bint divide_strides=False) except -1 nogil:
150 cdef BaseLayout base
151 _init_base_layout_from_ptr(base, ndim, shape, strides) 23iuiviwiZixiyiziAi0iBiCiDiEi1iFi2iOhPhQhRh^h_h
152 return self._init(base, itemsize, divide_strides) 23iuiviwiZixiyiziAi0iBiCiDiEi1iFi2iOhPhQhRh^h_h
154 cdef inline int init_dense_from_ptr(_StridedLayout self, int ndim, extent_t* shape, int itemsize, OrderFlag order_flag, axis_vec_t* stride_order=NULL) except -1 nogil:
155 cdef BaseLayout base
156 _init_base_layout_from_ptr(base, ndim, shape, NULL) 2OgugPgbb4 fb} wd# xdO d V , ~ sbkc+eA ac5 lcw 6 q Qc- ,e. abtbs v $ K (b[ ] t l b ucB C f ub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bF G xbX vcc * y ` S T L jfVeH Y Weh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e M U 8 o p z 3 9 g @ N ! 2cib
157 return self._init_dense(base, itemsize, order_flag, stride_order) 2OgugPgbb4 fb} wd# xdO d V , ~ sbkc+eA ac5 lcw 6 q Qc- ,e. abtbs v $ K (b[ ] t l b ucB C f ub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bF G xbX vcc * y ` S T L jfVeH Y Weh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e M U 8 o p z 3 9 g @ N ! 2cib
159 cdef inline int init_from_tuple(_StridedLayout self, tuple shape, tuple strides, int itemsize, bint divide_strides=False) except -1:
160 cdef BaseLayout base
161 _init_base_layout_from_tuple(base, shape, strides) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepe5i4iqioipimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWi6iShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h)h*h+h}hli7itidi
162 return self._init(base, itemsize, divide_strides) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepe5i4iqioipimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWi6iShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h)h*h+h}hli7itidi
164 cdef inline int init_dense_from_tuple(_StridedLayout self, tuple shape, int itemsize, object stride_order) except -1:
165 cdef axis_vec_t stride_order_vec
166 cdef OrderFlag order_flag = _stride_order2vec(stride_order_vec, stride_order) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperisiminieifi~haibicimgngghogSfTf(gUfEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h`h{h)h*h+h
168 if order_flag == ORDER_NONE: 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperisiminieifi~haibicimgngghogSfTf(gUfEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h`h{h)h*h+h
169 raise ValueError(f"The stride_order must be 'C', 'F', or a permutation tuple. Got: {stride_order}")
171 cdef BaseLayout base
172 _init_base_layout_from_tuple(base, shape, None) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperisiminieifi~haibicimgngghogSfTf(gUfEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h`h{h)h*h+h
173 return self._init_dense(base, itemsize, order_flag, &stride_order_vec) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperisiminieifi~haibicimgngghogSfTf(gUfEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h`h{h)h*h+h
175 # ==============================
176 # Properties
177 # ==============================
179 cdef inline tuple get_shape_tuple(_StridedLayout self):
180 if not _has_valid_property(self, PROP_SHAPE): 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWiShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h)h*h+hlitiOhPhQhRh^h_h
181 self._py_shape = cuda_utils.carray_integer_t_to_tuple(self.base.shape, self.base.ndim) 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWiShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h)h*h+hlitiOhPhQhRh^h_h
182 _mark_property_valid(self, PROP_SHAPE) 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWiShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h)h*h+hlitiOhPhQhRh^h_h
183 return self._py_shape 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWiShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h)h*h+hlitiOhPhQhRh^h_h
185 cdef inline tuple get_strides_tuple(_StridedLayout self):
186 if not _has_valid_property(self, PROP_STRIDES): 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,h-hHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: NhIh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWiShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h+h}hliti^h_h
187 if self.base.strides == NULL: 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,h-hHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: NhIh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWiShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h+h}hliti^h_h
188 self._py_strides = None 2Ld%gPfScTc.cccDcmcEcMbFcGcncXgdccb+ ' dbGhObAbebBbCbDbPbhfjba ke#cYc$cLc'gQdHcQbIcJcRbocSbTbpcKcqcrcUb`bsctcVb{b|b}bSfTf(gUfMh,h-hHhqfVdZfQg0fZcYgecfcgchcMcZgEbWbXbYbicAgZb0b1b2b3b4b5b6b7b8b9b!bjclb]f^f7f8f#b_f$bhb: NhIh.h0g1g2g3g%b4g5g'b6g7g8g9gobpbBgsg=fqbFbtgrb;gSeue/c[c'c]c^c(c!gcd)g1f(dUg#gNcTgOc)c*cPc_c,g)d:cmb+c*d;c,c-chhugahih4 ygzgrg%fO d Wf~ acq Qc- s 'fv t l b ucB C f _ ) r ; W (fvcc * )fh I i j wck = 0cm n e xco p z g ib-e.e-gyczcAcBcCckfGb+b,b-bHbIbJbKb.b/b:b;bLb=b?b@b[b]b^bRc_bZi0i1iGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiXiYiViWi}h
189 else:
190 self._py_strides = cuda_utils.carray_integer_t_to_tuple(self.base.strides, self.base.ndim) 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwixiyiziAiBiCiDiEiFigihiiijikiShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h+hliti^h_h
191 _mark_property_valid(self, PROP_STRIDES) 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,h-hHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: NhIh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWiShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h+h}hliti^h_h
192 return self._py_strides 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,h-hHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: NhIh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWiShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h+h}hliti^h_h
194 cdef inline int get_strides_in_bytes(_StridedLayout self, extents_strides_t& strides) except -1 nogil:
195 if self.base.strides != NULL: 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMhEhChJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
196 strides.resize(self.base.ndim) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMhEhChJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
197 for i in range(self.base.ndim): 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMhEhChJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
198 strides[i] = _overflow_checked_mul(self.base.strides[i], self.itemsize) 2vg5fwgLd6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngogSfTfUfMhEhChJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-cGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
199 return 0 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMhEhChJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
201 cdef inline tuple get_strides_in_bytes_tuple(_StridedLayout self):
202 if _has_valid_property(self, PROP_STRIDES_IN_BYTES): 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
203 return self._py_strides_in_bytes 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gkglgifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(cch9fdhpgcdqgjhkh!f]e.f(d/fvfeh*g^eNc=gOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
204 cdef extents_strides_t strides
205 if self.base.strides == NULL: 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
206 self._py_strides_in_bytes = None 2Ld%gPfScTc.cccDcmcEcMbFcGcncXgdccb+ ' dbGhObAbebBbCbDbPbhfjba ke#cYc$cLc'gQdHcQbIcJcRbocSbTbpcKcqcrcUb`bsctcVb{b|b}bSfTf(gUfMh,h-hHhqfVdZfQg0fZcYgecfcgchcMcZgEbWbXbYbicAgZb0b1b2b3b4b5b6b7b8b9b!bjclb]f^f7f8f#b_f$bhb: NhIh.h0g1g2g3g%b4g5g'b6g7g8g9gobpbBgsg=fqbFbtgrb;gSeue/c[c'c]c^c(c!gcd)g1f(dUg#gNcTgOc)c*cPc_c,g)d:cmb+c*d;c,c-chhugahih4 ygzgrg%fO d Wf~ acq Qc- s 'fv t l b ucB C f _ ) r ; W (fvcc * )fh I i j wck = 0cm n e xco p z g ib-e.e-gyczcAcBcCckfGb+b,b-bHbIbJbKb.b/b:b;bLb=b?b@b[b]b^bRc_b
207 else:
208 self.get_strides_in_bytes(strides) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMhEhChJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
209 self._py_strides_in_bytes = cuda_utils.carray_integer_t_to_tuple(strides.data(), strides.size()) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMhEhChJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
210 _mark_property_valid(self, PROP_STRIDES_IN_BYTES) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
211 return self._py_strides_in_bytes 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
213 cdef inline int64_t get_volume(_StridedLayout self) except -1 nogil:
214 if not _has_valid_property(self, PROP_VOLUME): 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWi)h*h}hli2idiOhPhQhRh^h_h
215 self._volume = _volume(self.base) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWi)h*h}hli2idiOhPhQhRh^h_h
216 _mark_property_valid(self, PROP_VOLUME) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWi)h*h}hli2idiOhPhQhRh^h_h
217 return self._volume 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWi)h*h}hli2idiOhPhQhRh^h_h
219 cdef inline int get_stride_order(_StridedLayout self, axis_vec_t& stride_order) except -1 nogil:
220 _order_from_strides(stride_order, self.base.shape, self.base.strides, self.base.ndim) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
221 return 0 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
223 cdef inline tuple get_stride_order_tuple(_StridedLayout self):
224 if _has_valid_property(self, PROP_STRIDE_ORDER): 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
225 return self._py_stride_order 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVdqereYgecfcgcse/ghcte:gZgWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!blb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbAfBf/crfCfsftf[c'cDfEf]cFfufGf^cHf(c9fcd!f]e^eNc`e*e{ePc|e}e2f3f_c,gshth#f$f)d`cmb{cJfVf+cKfLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrgwd# |fxd%fd }f, Wfsb[fA ac5 ~f:fw ag- . tbs 'fv $ K (bfg] t l b C ggub^ vbD ydTeE _ ) P wbx R ( *bhgF G xbX (fvcc * igy ` T VeH Y We)fh I j wcXeYeZ { / ybzb| 0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
226 cdef axis_vec_t stride_order
227 self.get_stride_order(stride_order) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
228 self._py_stride_order = cuda_utils.carray_integer_t_to_tuple(stride_order.data(), stride_order.size()) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
229 _mark_property_valid(self, PROP_STRIDE_ORDER) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
230 return self._py_stride_order 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
232 cdef inline bint get_is_unique(_StridedLayout self) except -1 nogil:
233 if _has_valid_property(self, PROP_IS_UNIQUE): 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
234 return _boolean_property(self, PROP_IS_UNIQUE) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eXg.gnhGh9cOb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYczfQf$c@eLcRfmgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVdqereYgecfcgcse/ghcte:gZgWbWdXbYbXdYdZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!blb#d#b$d@c$bFhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gvdrb,gshth#f$f)dJfVf+cLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg# |f%f}fWf[f5 ~f:fags 'f$ K (bfgt l gg_ R ( *bhg(fig)fxcZe0ebgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfbfcfRc
235 if self.base.strides == NULL or self.get_volume() == 0: 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
236 return _set_boolean_property(self, PROP_IS_UNIQUE, True) 2Ld%gPfScTc.cccDcmcEcMbFcGcncXgdccb+ ' dbnhGhObAbebBbCbDbPbhfjba ke#cYc$cLc'gQdHcQbIcJcRbocSbTbpcKcqcrcUb`bsctcVb{b|b}bSfTf(gUfMh,hEhCh-hJhKhHhqfVd$gZfQgkglg0fZcYgecfcgchcMcZgEbWbXbYbicAgZb0b1b2b3b4b5b6b7b8b9b!bjclb]f^f7f8f#b_f$bhb: FhNhIhDhLh.h0g1g2g3g%b4g5g'b6g7g8g9gobpbBgsg=fqbFbtgrb;gSeue/c[c'c]c^c(c!gpgcdqg)g1f(dUg#gNcTgOc)c*cPc_c,g)d~e:cafmb+c*d;c,c-chhugahih4 ygzgrg%fO d Wf~ acq Qc- s 'fv t l b ucB C f _ ) r ; W (fvcc * )fh I i j wck = 0cm n e xco p z g ib-e.e-gyczcAcBcCckfGb+b,b-bHbIbJbKb.b/b:b;bLb=b?b@b[b]b^bRc_b
237 cdef axis_vec_t stride_order
238 self.get_stride_order(stride_order) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
239 return _set_boolean_property(self, PROP_IS_UNIQUE, _is_unique(self.base, stride_order)) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
241 cdef inline bint get_is_contiguous_c(_StridedLayout self) except -1 nogil:
242 if _has_valid_property(self, PROP_IS_CONTIGUOUS_C): 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
243 return _boolean_property(self, PROP_IS_CONTIGUOUS_C) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
244 return _set_boolean_property(self, PROP_IS_CONTIGUOUS_C, _is_contiguous_c(self.get_volume(), self.base)) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
246 cdef inline bint get_is_contiguous_f(_StridedLayout self) except -1 nogil:
247 if _has_valid_property(self, PROP_IS_CONTIGUOUS_F): 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
248 return _boolean_property(self, PROP_IS_CONTIGUOUS_F) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
249 return _set_boolean_property(self, PROP_IS_CONTIGUOUS_F, _is_contiguous_f(self.get_volume(), self.base)) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
251 cdef inline bint get_is_contiguous_any(_StridedLayout self) except -1 nogil:
252 if _has_valid_property(self, PROP_IS_CONTIGUOUS_ANY): 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
253 return _boolean_property(self, PROP_IS_CONTIGUOUS_ANY) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
254 cdef axis_vec_t stride_order
255 self.get_stride_order(stride_order) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
256 return _set_boolean_property(self, PROP_IS_CONTIGUOUS_ANY, _is_contiguous_any(self.get_volume(), self.base, stride_order)) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
258 cdef inline bint get_is_dense(_StridedLayout self) except -1 nogil:
259 if _has_valid_property(self, PROP_IS_DENSE): 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
260 return _boolean_property(self, PROP_IS_DENSE) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVdifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9g~cadobpbbdqbudFbvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fcd!f]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d`cmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
261 return _set_boolean_property(self, PROP_IS_DENSE, self.slice_offset == 0 and self.get_is_contiguous_any()) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
263 cdef inline int get_offset_bounds(_StridedLayout self, stride_t& min_offset, stride_t& max_offset) except -1 nogil:
264 if _has_valid_property(self, PROP_OFFSET_BOUNDS): 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMhEhChHhxgqf;fVdZfkglg0fifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: FhNhIhDh%d%b'd'b~cadobpbbdqbudFbvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fpgcdqg1f!f]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hdiOhPhQhRh
265 min_offset = self._min_offset 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVdifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: %d%b'd'b~cadobpbbdqbudFbvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fcd!f]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d`cmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
266 max_offset = self._max_offset 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVdifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: %d%b'd'b~cadobpbbdqbudFbvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fcd!f]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d`cmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
267 return 0 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVdifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: %d%b'd'b~cadobpbbdqbudFbvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fcd!f]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d`cmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
268 cdef int ndim = self.base.ndim 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMhEhChHhxgqf;fVdZfkglg0fifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: FhNhIhDh%d%b'd'b~cadobpbbdqbudFbvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fpgcdqg1f!f]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hdiOhPhQhRh
269 cdef stride_t stride
270 cdef extent_t extent
271 min_offset = self.slice_offset 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMhEhChHhxgqf;fVdZfkglg0fifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: FhNhIhDh%d%b'd'b~cadobpbbdqbudFbvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fpgcdqg1f!f]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hdiOhPhQhRh
272 max_offset = self.slice_offset 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMhEhChHhxgqf;fVdZfkglg0fifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: FhNhIhDh%d%b'd'b~cadobpbbdqbudFbvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fpgcdqg1f!f]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hdiOhPhQhRh
273 if self.base.strides == NULL: 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMhEhChHhxgqf;fVdZfkglg0fifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: FhNhIhDh%d%b'd'b~cadobpbbdqbudFbvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fpgcdqg1f!f]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hdiOhPhQhRh
274 max_offset = _overflow_checked_sum(max_offset, self.get_volume() - 1) 2XgGhObPbkehhahihygzgrg%fWf'f(f)f-gkf)h*h}hdi
275 else:
276 for i in range(ndim): 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8c.gdcjeVccbNbnb+ ' Wcdbnh9cddAbedfdgdXcebBbCbDb!cjghf|cjbu a kbnfwfofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMhEhChHhxgqf;fVdZfkglg0fifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: FhNhIhDh%d%b'd'b~cadobpbbdqbudFbvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fpgcdqg1f!f]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-cyhxhzhOguguhAhPgBhGgbb4 HgIgJgCgfbDg} wd# |fxdO d }fV , ~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs v $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX vcc * igy ` S T L jfVeH Y Weh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erhegXfveycwexeyezcAczeAeBcCcBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+hOhPhQhRh
277 stride = self.base.strides[i] # can be negative 2vg5fwgLd6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' Wcdbnh9cddAbedfdgdXcebBbCbDb!cjghf|cjbu a kbnfwfofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngogSfTfUfMhEhChHh;fVdZfkglg0fifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: FhNhIhDh%d%b'd'b~cadobpbbdqbudFbvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fpgcdqg1f!f]evf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{cJfVf+c;cKf4fLf,cMfNfOf-cGgbb4 HgIgJgCgfbDg} wd# |fxdO d }fV , ~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs v $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX vcc * igy ` S T L jfVeH Y Weh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegXfveycwexeyezcAczeAeBcCcBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h|h`h{h)h*h+hOhPhQhRh
278 extent = self.base.shape[i] # must be non-negative 2vg5fwgLd6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' Wcdbnh9cddAbedfdgdXcebBbCbDb!cjghf|cjbu a kbnfwfofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngogSfTfUfMhEhChHh;fVdZfkglg0fifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: FhNhIhDh%d%b'd'b~cadobpbbdqbudFbvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fpgcdqg1f!f]evf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{cJfVf+c;cKf4fLf,cMfNfOf-cGgbb4 HgIgJgCgfbDg} wd# |fxdO d }fV , ~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs v $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX vcc * igy ` S T L jfVeH Y Weh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegXfveycwexeyezcAczeAeBcCcBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h|h`h{h)h*h+hOhPhQhRh
279 if extent == 0: 2vg5fwgLd6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' Wcdbnh9cddAbedfdgdXcebBbCbDb!cjghf|cjbu a kbnfwfofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngogSfTfUfMhEhChHh;fVdZfkglg0fifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: FhNhIhDh%d%b'd'b~cadobpbbdqbudFbvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fpgcdqg1f!f]evf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{cJfVf+c;cKf4fLf,cMfNfOf-cGgbb4 HgIgJgCgfbDg} wd# |fxdO d }fV , ~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs v $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX vcc * igy ` S T L jfVeH Y Weh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegXfveycwexeyezcAczeAeBcCcBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h|h`h{h)h*h+hOhPhQhRh
280 min_offset = 0 2nhMhEhChHhZfkglg0fFhNhIhDhpgqg1f~e:caf
281 max_offset = -1 # empty range 2nhMhEhChHhZfkglg0fFhNhIhDhpgqg1f~e:caf
282 return 0 2nhMhEhChHhZfkglg0fFhNhIhDhpgqg1f~e:caf
283 if stride <= 0: 2vg5fwgLd6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' Wcdbnh9cddAbedfdgdXcebBbCbDb!cjghf|cjbu a kbnfwfofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngogSfTfUfChHh;fVdifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: IhDh%d%b'd'b~cadobpbbdqbudFbvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fcd!f]evf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c#f$f)d`cmb{cJfVf+c;cKf4fLf,cMfNfOf-cGgbb4 HgIgJgCgfbDg} wd# |fxdO d }fV , ~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs v $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX vcc * igy ` S T L jfVeH Y Weh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegXfveycwexeyezcAczeAeBcCcBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h|h`h{h)h*h+hOhPhQhRh
284 min_offset = _overflow_checked_sum(min_offset, _overflow_checked_mul(stride, (extent - 1))) 2vg5fwgLd6fPfdfefffScgfTcccMdNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eVccbWcdbnhddAbedfdgdXcebBbCbDbPd}cChHhIhDh~cadobpbbdqbudFbAfBf/crfsftf[c'cEf]cFfufGfHf(c2f3f_c`cmb{czdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b|hQhRh
285 else:
286 max_offset = _overflow_checked_sum(max_offset, _overflow_checked_mul(stride, (extent - 1))) 2.clfccMdmfNdmc;eMb2eOd=e3eFc5enc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' Wcdb9cddAbedfdgdXcebBbCbDb!cjghf|cjbu a kbnfwfofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngogSfTfUf;fVdifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: %d%b'd'b~cadobpbbdqbvdrb?fSe@fuerfCf,fsftf'cDf-fuf^c(c9fcd!f]evf^eNcOc)c_e`e*e{e*cPcIf|e}e#f$f)d`cmb{cJfVf+c;cKf4fLf,cMfNfOf-cGgbb4 HgIgJgCgfbDg} wd# |fxdO d }fV , ~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs v $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX vcc * igy ` S T L jfVeH Y Weh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegXfveycwexeyezcAczeAeBcCcBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h|h`h{h)h*h+hOhPhQhRh
287 self._min_offset = min_offset 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVdifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: %d%b'd'b~cadobpbbdqbudFbvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fcd!f]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d`cmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hdiOhPhQhRh
288 self._max_offset = max_offset 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVdifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: %d%b'd'b~cadobpbbdqbudFbvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fcd!f]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d`cmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hdiOhPhQhRh
289 _mark_property_valid(self, PROP_OFFSET_BOUNDS) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVdifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: %d%b'd'b~cadobpbbdqbudFbvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fcd!f]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d`cmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hdiOhPhQhRh
290 return 0 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVdifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: %d%b'd'b~cadobpbbdqbudFbvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fcd!f]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d`cmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hdiOhPhQhRh
292 cdef inline int64_t get_required_size_in_bytes(_StridedLayout self) except? -1 nogil:
293 if _has_valid_property(self, PROP_REQUIRED_SIZE_IN_BYTES): 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMhEhChHhxgqf;fVdZfkglg0fifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: FhNhIhDh%d%b'd'b~cadobpbbdqbudFbvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fpgcdqg1f!f]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hdiOhPhQhRh
294 return self._required_size_in_bytes 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVdifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: %d%b'd'b~cadobpbbdqbudFbvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fcd!f]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d`cmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-cbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b+h
295 cdef stride_t min_offset = 0 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMhEhChHhxgqf;fVdZfkglg0fifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: FhNhIhDh%d%b'd'b~cadobpbbdqbudFbvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fpgcdqg1f!f]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hdiOhPhQhRh
296 cdef stride_t max_offset = 0 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMhEhChHhxgqf;fVdZfkglg0fifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: FhNhIhDh%d%b'd'b~cadobpbbdqbudFbvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fpgcdqg1f!f]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hdiOhPhQhRh
297 self.get_offset_bounds(min_offset, max_offset) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMhEhChHhxgqf;fVdZfkglg0fifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: FhNhIhDh%d%b'd'b~cadobpbbdqbudFbvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fpgcdqg1f!f]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hdiOhPhQhRh
298 if min_offset < 0: 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMhEhChHhxgqf;fVdZfkglg0fifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: FhNhIhDh%d%b'd'b~cadobpbbdqbudFbvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fpgcdqg1f!f]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hdiOhPhQhRh
299 raise ValueError( 2|h
300 f"Allocation size for a layout that maps elements " 2|h
301 f"to negative memory offsets is ambiguous. "
302 f"The layout's min_offset is {min_offset}." 2|h
303 )
304 if max_offset < min_offset: 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMhEhChHhxgqf;fVdZfkglg0fifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: FhNhIhDh%d%b'd'b~cadobpbbdqbudFbvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fpgcdqg1f!f]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h`h{h)h*h+h}hdiOhPhQhRh
305 return 0 2nhGhMhEhChHhZfkglg0fFhNhIhDhpgqg1f~e:caf
306 cdef int64_t required_size_in_bytes = _overflow_checked_sum(max_offset, 1) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVdifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: %d%b'd'b~cadobpbbdqbudFbvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fcd!f]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d`cmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h`h{h)h*h+h}hdiOhPhQhRh
307 self._required_size_in_bytes = _overflow_checked_mul(required_size_in_bytes, self.itemsize) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVdifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: %d%b'd'b~cadobpbbdqbudFbvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fcd!f]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d`cmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h`h{h)h*h+h}hdiOhPhQhRh
308 _mark_property_valid(self, PROP_REQUIRED_SIZE_IN_BYTES) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVdifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: %d%b'd'b~cadobpbbdqbudFbvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fcd!f]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d`cmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h`h{h)h*h+h}hdiOhPhQhRh
309 return self._required_size_in_bytes 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVdifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdicQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb#d%c#b$d@c$bhb~b: %d%b'd'b~cadobpbbdqbudFbvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c9fcd!f]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d`cmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h`h{h)h*h+h}hdiOhPhQhRh
311 cdef inline int64_t get_slice_offset_in_bytes(_StridedLayout self) except? -1 nogil:
312 return _overflow_checked_mul(self.slice_offset, self.itemsize) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h)h*h}hdiOhPhQhRh^h_h
314 cdef axes_mask_t get_flattened_axis_mask(_StridedLayout self) except? -1 nogil
315 cdef int get_max_compatible_itemsize(_StridedLayout self, int max_itemsize, intptr_t data_ptr, int axis=*) except -1 nogil
317 # ==============================
318 # Layout manipulation
319 # ==============================
322 cdef int reshape_into(_StridedLayout self, _StridedLayout out_layout, BaseLayout& new_shape) except -1 nogil
323 cdef int permute_into(_StridedLayout self, _StridedLayout out_layout, axis_vec_t& axis_order) except -1 nogil
325 cdef int flatten_into(_StridedLayout self, _StridedLayout out_layout, axes_mask_t axis_mask) except -1 nogil
326 cdef int squeeze_into(_StridedLayout self, _StridedLayout out_layout) except -1 nogil
327 cdef int unsqueeze_into(_StridedLayout self, _StridedLayout out_layout, axis_vec_t& axis_vec) except -1 nogil
328 cdef int broadcast_into(_StridedLayout self, _StridedLayout out_layout, BaseLayout& broadcast) except -1 nogil
329 cdef int pack_into(_StridedLayout self, _StridedLayout out_layout, int itemsize, intptr_t data_ptr, bint keep_dim, int axis=*) except -1 nogil
330 cdef int unpack_into(_StridedLayout self, _StridedLayout out_layout, int itemsize, int axis=*) except -1 nogil
331 cdef int slice_into(_StridedLayout self, _StridedLayout out_layout, tuple slices) except -1
333# ==============================
334# Base layout helpers
335# ==============================
338cdef inline int init_base_layout(BaseLayout& layout, int ndim) except -1 nogil:
339 if ndim > STRIDED_LAYOUT_MAX_NDIM: 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperi5isimi4iniqieifi~hoipiaibicimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWi6iShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hli7iti2idiOhPhQhRh^h_h
340 raise ValueError(f"Unsupported number of dimensions: {ndim}. Max supported ndim is {STRIDED_LAYOUT_MAX_NDIM}")
341 # resize(0) is no op, that results in _mem.data() being NULL,
342 # which would make it tricky to distinguish between strides == NULL
343 # and strides == tuple()
344 layout._mem.resize(2 * max(ndim, 1)) 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperi5isimi4iniqieifi~hoipiaibicimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWi6iShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hli7iti2idiOhPhQhRh^h_h
345 layout.shape = layout._mem.data() 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperi5isimi4iniqieifi~hoipiaibicimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWi6iShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hli7iti2idiOhPhQhRh^h_h
346 layout.strides = layout._mem.data() + ndim 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperi5isimi4iniqieifi~hoipiaibicimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWi6iShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hli7iti2idiOhPhQhRh^h_h
347 layout.ndim = ndim 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperi5isimi4iniqieifi~hoipiaibicimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWi6iShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hli7iti2idiOhPhQhRh^h_h
348 return 0 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperi5isimi4iniqieifi~hoipiaibicimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWi6iShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hli7iti2idiOhPhQhRh^h_h
351cdef inline int trim_base_layout(BaseLayout& layout, int ndim) except -1 nogil:
352 if ndim > layout.ndim: 2VccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPb|cjbu a kbEbtdWbWdXbYbXdYdZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb7f8f#d#b$d@cEg$bFg~b: %d%b'd'b~cadobpbsgbdRgqbudSgFbtgvdrb]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-cOhPh
353 raise AssertionError(f"Cannot trim layout to {ndim} dimensions, it has {layout.ndim} dimensions")
354 layout.ndim = ndim 2VccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPb|cjbu a kbEbtdWbWdXbYbXdYdZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb7f8f#d#b$d@cEg$bFg~b: %d%b'd'b~cadobpbsgbdRgqbudSgFbtgvdrb]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-cOhPh
355 return 0 2VccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPb|cjbu a kbEbtdWbWdXbYbXdYdZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb7f8f#d#b$d@cEg$bFg~b: %d%b'd'b~cadobpbsgbdRgqbudSgFbtgvdrb]e.f(d/fvf^eNcOc)c_e`e*e{e*cPcIf|e}e~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-cOhPh
358cdef inline void _swap_layout(BaseLayout& a, BaseLayout& b) noexcept nogil:
359 _swap(a._mem, b._mem) 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperi5isimi4iniqieifi~hoipiaibicimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWiShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hliti2idiOhPhQhRh^h_h
360 _swap(a.shape, b.shape) 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperi5isimi4iniqieifi~hoipiaibicimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWiShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hliti2idiOhPhQhRh^h_h
361 _swap(a.strides, b.strides) 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperi5isimi4iniqieifi~hoipiaibicimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWiShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hliti2idiOhPhQhRh^h_h
362 _swap(a.ndim, b.ndim) 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperi5isimi4iniqieifi~hoipiaibicimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWiShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hliti2idiOhPhQhRh^h_h
365cdef inline void _assure_strides_ptr(BaseLayout& base) noexcept nogil:
366 if base.strides == NULL: 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperisiminieifi~haibicimgngghogSfTf(gUfMhEhChJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h`h{h)h*h+h
367 base.strides = base._mem.data() + base._mem.size() // 2 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperisiminieifi~haibicimgngghogSfTf(gUfEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h`h{h)h*h+h
370cdef inline stride_t *get_strides_ptr(BaseLayout& base) except? NULL nogil:
371 if base.strides != NULL: 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8edcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPb|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepeqieifi~hoipiaibicimgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: %d%b'd'bKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqg1f!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-c} wdxdO d V , ~ sbkc+eA aclcw 6 q Qc- ,e. abtbv [ ] b ucB C f ub^ )bgbvbD ydTeE ) r ; W P wbQ Uebcx F G xbX vcc * y ` S T L jfVeH Y Weh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegveycwexeyezcAczeAeBcCcBeCeDeEezdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b)h*h2iOhPhQhRh^h_h
372 return base.strides 2vglh5fwgmh6fdfefffgflfMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8edcjeVccbNbnb+ ' Wcdbnh9cddAbedfdgdXcebBbCbDb!c|cu a kbnfwfofxf#cpfyfYcPd}czfQf$c@eLcRfohph*f+fhdid9e!ejd#ekdld$e%emdndFeodGe'eHeRdIeJeSdpdKeLe(eMeqd)erdNeOesdPeTdUdlemeneoepeeifi~haibicimgngghogSfTf(gUfxgqf;fVd$gkglgifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: %d%b'd'bKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh?f@fAfBf/crfCf,fsftf'cDfEf-fFfufGfHf(cch9fdhpgcdqg!f]e.f/fvfeh*g^e=gfh+g_e?g`e*e{e*cIf|e}e2f3fshth#f$f~e:c`cafmb{c`fJfVf{f*d;cKf4fLfMfNfOf} wdxdV , sbkc+eA lcw 6 ,e. abtb[ ] ub^ )bgbvbD ydTeE P wbQ Uebcx F G xbX y ` S T L jfVeH Y WeXeYe% Z { / ybzb| 0 1 J 2 1c7 ? M ZeU 8 0e3 9 @ N ! 2cbgcgdgegvewexeyezeAeBeCeDeEezdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bHdIdcedeeefeJdgeheieKd_b)h*h2iOhPhQhRh^h_h
373 cdef stride_t* tmp_strides = base._mem.data() + base._mem.size() // 2 2Ld%gPfScTc.cccDcmcEcMbFcGcncdccb+ ' dbGhObAbebBbCbDbPbjba ke#cYc$cLc'gQdHcQbIcJcRbocSbTbpcKcqcrcUb`bsctcVb{b|b}bqioipiqfVdZfQg0fZcecfcgchcMcEbWbXbYbicAgZb0b1b2b3b4b5b6b7b8b9b!bjclb]f^f7f8f#b_f$bhb: %b'bobpbBgsg=fqbFbtgrb;gSeue/c[c'c]c^c(c!gcd1f(dUg#gNcTgOc)c*cPc_c,g)d:cmb+c*d;c,c-cO d ~ acq Qc- v b ucB C f ) r ; W vcc * h I i j wck = 0cm n e xco p z g ib-e.eyczcAcBcCcGb+b,b-bHbIbJbKb.b/b:b;bLb=b?b@b[b]b^bRc_b
374 _dense_strides_c_ptrs(base.ndim, base.shape, tmp_strides) 2Ld%gPfScTc.cccDcmcEcMbFcGcncdccb+ ' dbGhObAbebBbCbDbPbjba ke#cYc$cLc'gQdHcQbIcJcRbocSbTbpcKcqcrcUb`bsctcVb{b|b}bqioipiqfVdZfQg0fZcecfcgchcMcEbWbXbYbicAgZb0b1b2b3b4b5b6b7b8b9b!bjclb]f^f7f8f#b_f$bhb: %b'bobpbBgsg=fqbFbtgrb;gSeue/c[c'c]c^c(c!gcd1f(dUg#gNcTgOc)c*cPc_c,g)d:cmb+c*d;c,c-cO d ~ acq Qc- v b ucB C f ) r ; W vcc * h I i j wck = 0cm n e xco p z g ib-e.eyczcAcBcCcGb+b,b-bHbIbJbKb.b/b:b;bLb=b?b@b[b]b^bRc_b
375 return tmp_strides 2Ld%gPfScTc.cccDcmcEcMbFcGcncdccb+ ' dbGhObAbebBbCbDbPbjba ke#cYc$cLc'gQdHcQbIcJcRbocSbTbpcKcqcrcUb`bsctcVb{b|b}bqioipiqfVdZfQg0fZcecfcgchcMcEbWbXbYbicAgZb0b1b2b3b4b5b6b7b8b9b!bjclb]f^f7f8f#b_f$bhb: %b'bobpbBgsg=fqbFbtgrb;gSeue/c[c'c]c^c(c!gcd1f(dUg#gNcTgOc)c*cPc_c,g)d:cmb+c*d;c,c-cO d ~ acq Qc- v b ucB C f ) r ; W vcc * h I i j wck = 0cm n e xco p z g ib-e.eyczcAcBcCcGb+b,b-bHbIbJbKb.b/b:b;bLb=b?b@b[b]b^bRc_b
378cdef inline bint _base_layout_equal(BaseLayout& a, BaseLayout& b) noexcept nogil:
379 if a.ndim != b.ndim: 2Xg.gdcjeVccbNbnb+ ' WcdbnhGh9cObXceb!cPbjghf|cjbu a kbShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h
380 return False
381 for i in range(a.ndim): 2Xg.gdcjeVccbNbnb+ ' WcdbnhGh9cObXceb!cPbjghf|cjbu a kbShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h
382 if a.shape[i] != b.shape[i]: 2Xg.gdcjeVccbNbnb+ ' WcdbnhGh9cObXceb!cPbjghf|cjbu a kbShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h
383 return False
384 if a.strides != NULL or b.strides != NULL: 2Xg.gdcjeVccbNbnb+ ' WcdbnhGh9cObXceb!cPbjghf|cjbu a kbShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h
385 if a.strides == NULL or b.strides == NULL: 2Xg.gdcjeVccbNbnb+ ' WcdbnhGh9cObXceb!cPbjghf|cjbu a kbShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h
386 return False
387 for i in range(a.ndim): 2Xg.gdcjeVccbNbnb+ ' WcdbnhGh9cObXceb!cPbjghf|cjbu a kbShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h
388 if a.strides[i] != b.strides[i]: 2Xg.gdcjeVccbNbnb+ ' WcdbnhGh9cObXceb!cPbjghf|cjbu a kbShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h
389 return False
390 return True 2Xg.gdcjeVccbNbnb+ ' WcdbnhGh9cObXceb!cPbjghf|cjbu a kbShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h
393@cython.overflowcheck(True)
394cdef inline int64_t _volume(BaseLayout& base) except? -1 nogil:
395 cdef int64_t vol = 1 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWi)h*h}hli2idiOhPhQhRh^h_h
396 for i in range(base.ndim): 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWi)h*h}hli2idiOhPhQhRh^h_h
397 vol *= base.shape[i] 2vg5fwgLd6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngogSfTfUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-cGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwixiyiziAiBiCiDiEiFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiViWi)h*h}hli2idiOhPhQhRh^h_h
398 return vol 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWi)h*h}hli2idiOhPhQhRh^h_h
401cdef inline int _divide_strides(BaseLayout& base, int itemsize) except -1 nogil:
402 cdef stride_t stride
403 if base.strides == NULL: 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bgihiiijiki6ili7iti
404 raise ValueError("cannot divide strides, layout has no strides")
405 for i in range(base.ndim): 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bgihiiijiki6ili7iti
406 stride = base.strides[i] // itemsize 2vg5fwgLd6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngogSfTfUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-cGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bgihiiijiki6ili7iti
407 if stride * itemsize != base.strides[i]: 2vg5fwgLd6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngogSfTfUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-cGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bgihiiijiki6ili7iti
408 raise ValueError("strides must be divisible by itemsize") 26i7i
409 base.strides[i] = stride 2vg5fwgLd6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngogSfTfUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-cGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bgihiiijikiliti
410 return 0 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bgihiiijikiliti
413cdef inline void _zero_strides_ptr(int ndim, stride_t* strides) noexcept nogil:
414 for i in range(ndim): 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8enhGhmgngghogSfTf(gUfMhEhChJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh%d%b'd'bKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbpgqg1f~e:caf
415 strides[i] = 0 2vg5fwgLd6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8enhGhmgngogSfTfUfMhEhChJhKhHh;fVd$gZfQgkglg0fifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh%d%b'd'bKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbpgqg1f~e:caf
418cdef inline void _zero_strides(BaseLayout& base) noexcept nogil:
419 _assure_strides_ptr(base) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8emgngghogSfTf(gUfMhEhChHhxgqf;fVd$gZfQgkglg0fifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDh%d%b'd'bKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbpgqg1f~e:caf
420 _zero_strides_ptr(base.ndim, base.strides) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8emgngghogSfTf(gUfMhEhChHhxgqf;fVd$gZfQgkglg0fifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDh%d%b'd'bKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbpgqg1f~e:caf
423cdef inline stride_t _dense_strides_c_ptrs(int ndim, extent_t* shape, stride_t* strides) except? -1 nogil:
424 cdef stride_t stride = 1 2vg5fLdmh%gPfdfefScTc.cccMdmfDc/e:emcEc;eMb2eOdFc?eGcnc7eXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a nfkeof#cpfYcPdzf$c@eLcoh'g+fQdhdHcQb9e#eIcJcRbldoc%emdSbFeodTbpcIeJeSdpdKcqcrc(eMeUb`brdOescPetcVb{b|ble}boeperiniqiei~hoipiaimgngghogSfTf(gUfEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbwh;gSe@fAfue/crf[c'cDfEf]c-fFfuf^c(c!gch9fcdqg)g1fkh]e(dUg#g/fvfNcTgOc)cfh+g_e?g*cPcIf|e2f_c,gth$f)d~e:cmb{c`fJf+c*d;c4fLf,cOf-chhyhOgugahuhAhihbb4 ygHgJgCgzgrg} wd%fO d }fV Wf~ sbkcac5 ~f:flcw q Qc- ,e. tbs 'fv $ K (b[ t l b ucB C f ggub^ )bgbvb_ ) r ; W P wbQ Uebcx *bxb(fvcc * igy ` S T L jf)fh I i j wcXeYe% ybzbk = 0c0 1 J m 2 1c? n e xcM Zeo p z 3 g @ ibbgqh-e.eeg-gXfycwexeyezcAcBcCckfBeCezdAd+d,dbfGb+b,b-bBd;d=dHb[d]d^d_dIbJbKb.b/b:b;bFd{d|dLb=b?b@b[b]b^bRcHdIdcedeeefe_bShThUh/hVhWhXh:h4h5h6h?h7h8h9h@h`h{h)h+h
425 cdef int i = ndim - 1 2vg5fLdmh%gPfdfefScTc.cccMdmfDc/e:emcEc;eMb2eOdFc?eGcnc7eXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a nfkeof#cpfYcPdzf$c@eLcoh'g+fQdhdHcQb9e#eIcJcRbldoc%emdSbFeodTbpcIeJeSdpdKcqcrc(eMeUb`brdOescPetcVb{b|ble}boeperiniqiei~hoipiaimgngghogSfTf(gUfEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbwh;gSe@fAfue/crf[c'cDfEf]c-fFfuf^c(c!gch9fcdqg)g1fkh]e(dUg#g/fvfNcTgOc)cfh+g_e?g*cPcIf|e2f_c,gth$f)d~e:cmb{c`fJf+c*d;c4fLf,cOf-chhyhOgugahuhAhihbb4 ygHgJgCgzgrg} wd%fO d }fV Wf~ sbkcac5 ~f:flcw q Qc- ,e. tbs 'fv $ K (b[ t l b ucB C f ggub^ )bgbvb_ ) r ; W P wbQ Uebcx *bxb(fvcc * igy ` S T L jf)fh I i j wcXeYe% ybzbk = 0c0 1 J m 2 1c? n e xcM Zeo p z 3 g @ ibbgqh-e.eeg-gXfycwexeyezcAcBcCckfBeCezdAd+d,dbfGb+b,b-bBd;d=dHb[d]d^d_dIbJbKb.b/b:b;bFd{d|dLb=b?b@b[b]b^bRcHdIdcedeeefe_bShThUh/hVhWhXh:h4h5h6h?h7h8h9h@h`h{h)h+h
426 while i >= 0: 2vg5fLdmh%gPfdfefScTc.cccMdmfDc/e:emcEc;eMb2eOdFc?eGcnc7eXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a nfkeof#cpfYcPdzf$c@eLcoh'g+fQdhdHcQb9e#eIcJcRbldoc%emdSbFeodTbpcIeJeSdpdKcqcrc(eMeUb`brdOescPetcVb{b|ble}boeperiniqiei~hoipiaimgngghogSfTf(gUfEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbwh;gSe@fAfue/crf[c'cDfEf]c-fFfuf^c(c!gch9fcdqg)g1fkh]e(dUg#g/fvfNcTgOc)cfh+g_e?g*cPcIf|e2f_c,gth$f)d~e:cmb{c`fJf+c*d;c4fLf,cOf-chhyhOgugahuhAhihbb4 ygHgJgCgzgrg} wd%fO d }fV Wf~ sbkcac5 ~f:flcw q Qc- ,e. tbs 'fv $ K (b[ t l b ucB C f ggub^ )bgbvb_ ) r ; W P wbQ Uebcx *bxb(fvcc * igy ` S T L jf)fh I i j wcXeYe% ybzbk = 0c0 1 J m 2 1c? n e xcM Zeo p z 3 g @ ibbgqh-e.eeg-gXfycwexeyezcAcBcCckfBeCezdAd+d,dbfGb+b,b-bBd;d=dHb[d]d^d_dIbJbKb.b/b:b;bFd{d|dLb=b?b@b[b]b^bRcHdIdcedeeefe_bShThUh/hVhWhXh:h4h5h6h?h7h8h9h@h`h{h)h+h
427 strides[i] = stride 2dfefScTc.cccMdmfDc/e:emcEc;eMb2eOdFc?eGcnc7edcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a nfkeof#cpfYcPdzf$c@eLc+fQdhdHcQb9e#eIcJcRbldoc%emdSbFeodTbpcIeJeSdpdKcqcrc(eMeUb`brdOescPetcVb{b|ble}boepeniqiei~hoipiaiEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbSe@fAfue/crf[c'cDfEf]c-fFfuf^c(c!gch9fcdqg)g1fkh]e(dUg#g/fvfNcTgOc)cfh+g_e?g*cPcIf|e2f_c$f)d~e:cmb{c`fJf+c*d;c4fLf,cOf-cbb4 ygHgJgCgzgrg} wd%fO d }fV Wf~ sbkcac5 ~f:flcw q Qc- ,e. tbs 'fv $ K (b[ t l b ucB C f ggub^ )bgbvb_ ) r ; W P wbQ Uebcx *bxb(fvcc * igy ` S T L jf)fh I i j wcXeYe% ybzbk = 0c0 1 J m 2 1c? n e xcM Zeo p z 3 g @ ibXfycwexeyezcAcBcCckfBeCezdAd+d,dbfGb+b,b-bBd;d=dHb[d]d^d_dIbJbKb.b/b:b;bFd{d|dLb=b?b@b[b]b^bRcHdIdcedeeefe_bShThUhVhWhXh4h5h6h7h8h9h`h{h)h+h
428 stride = _overflow_checked_mul(stride, shape[i]) 2dfefScTc.cccMdmfDc/e:emcEc;eMb2eOdFc?eGcnc7edcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a nfkeof#cpfYcPdzf$c@eLc+fQdhdHcQb9e#eIcJcRbldoc%emdSbFeodTbpcIeJeSdpdKcqcrc(eMeUb`brdOescPetcVb{b|ble}boepeniqiei~hoipiaiEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbSe@fAfue/crf[c'cDfEf]c-fFfuf^c(c!gch9fcdqg)g1fkh]e(dUg#g/fvfNcTgOc)cfh+g_e?g*cPcIf|e2f_c$f)d~e:cmb{c`fJf+c*d;c4fLf,cOf-cbb4 ygHgJgCgzgrg} wd%fO d }fV Wf~ sbkcac5 ~f:flcw q Qc- ,e. tbs 'fv $ K (b[ t l b ucB C f ggub^ )bgbvb_ ) r ; W P wbQ Uebcx *bxb(fvcc * igy ` S T L jf)fh I i j wcXeYe% ybzbk = 0c0 1 J m 2 1c? n e xcM Zeo p z 3 g @ ibXfycwexeyezcAcBcCckfBeCezdAd+d,dbfGb+b,b-bBd;d=dHb[d]d^d_dIbJbKb.b/b:b;bFd{d|dLb=b?b@b[b]b^bRcHdIdcedeeefe_bShThUhVhWhXh4h5h6h7h8h9h`h{h)h+h
429 i -= 1 2dfefScTc.cccMdmfDc/e:emcEc;eMb2eOdFc?eGcnc7edcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a nfkeof#cpfYcPdzf$c@eLc+fQdhdHcQb9e#eIcJcRbldoc%emdSbFeodTbpcIeJeSdpdKcqcrc(eMeUb`brdOescPetcVb{b|ble}boepeniqiei~hoipiaiEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbSe@fAfue/crf[c'cDfEf]c-fFfuf^c(c!gch9fcdqg)g1fkh]e(dUg#g/fvfNcTgOc)cfh+g_e?g*cPcIf|e2f_c$f)d~e:cmb{c`fJf+c*d;c4fLf,cOf-cbb4 ygHgJgCgzgrg} wd%fO d }fV Wf~ sbkcac5 ~f:flcw q Qc- ,e. tbs 'fv $ K (b[ t l b ucB C f ggub^ )bgbvb_ ) r ; W P wbQ Uebcx *bxb(fvcc * igy ` S T L jf)fh I i j wcXeYe% ybzbk = 0c0 1 J m 2 1c? n e xcM Zeo p z 3 g @ ibXfycwexeyezcAcBcCckfBeCezdAd+d,dbfGb+b,b-bBd;d=dHb[d]d^d_dIbJbKb.b/b:b;bFd{d|dLb=b?b@b[b]b^bRcHdIdcedeeefe_bShThUhVhWhXh4h5h6h7h8h9h`h{h)h+h
430 if stride == 0: 2vg5fLdmh%gPfdfefScTc.cccMdmfDc/e:emcEc;eMb2eOdFc?eGcnc7eXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a nfkeof#cpfYcPdzf$c@eLcoh'g+fQdhdHcQb9e#eIcJcRbldoc%emdSbFeodTbpcIeJeSdpdKcqcrc(eMeUb`brdOescPetcVb{b|ble}boeperiniqiei~hoipiaimgngghogSfTf(gUfEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbwh;gSe@fAfue/crf[c'cDfEf]c-fFfuf^c(c!gch9fcdqg)g1fkh]e(dUg#g/fvfNcTgOc)cfh+g_e?g*cPcIf|e2f_c,gth$f)d~e:cmb{c`fJf+c*d;c4fLf,cOf-chhyhOgugahuhAhihbb4 ygHgJgCgzgrg} wd%fO d }fV Wf~ sbkcac5 ~f:flcw q Qc- ,e. tbs 'fv $ K (b[ t l b ucB C f ggub^ )bgbvb_ ) r ; W P wbQ Uebcx *bxb(fvcc * igy ` S T L jf)fh I i j wcXeYe% ybzbk = 0c0 1 J m 2 1c? n e xcM Zeo p z 3 g @ ibbgqh-e.eeg-gXfycwexeyezcAcBcCckfBeCezdAd+d,dbfGb+b,b-bBd;d=dHb[d]d^d_dIbJbKb.b/b:b;bFd{d|dLb=b?b@b[b]b^bRcHdIdcedeeefe_bShThUh/hVhWhXh:h4h5h6h?h7h8h9h@h`h{h)h+h
431 _zero_strides_ptr(ndim, strides) 2nhGhEhChJhKhFhDhLh
432 return stride 2vg5fLdmh%gPfdfefScTc.cccMdmfDc/e:emcEc;eMb2eOdFc?eGcnc7eXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a nfkeof#cpfYcPdzf$c@eLcoh'g+fQdhdHcQb9e#eIcJcRbldoc%emdSbFeodTbpcIeJeSdpdKcqcrc(eMeUb`brdOescPetcVb{b|ble}boeperiniqiei~hoipiaimgngghogSfTf(gUfEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbwh;gSe@fAfue/crf[c'cDfEf]c-fFfuf^c(c!gch9fcdqg)g1fkh]e(dUg#g/fvfNcTgOc)cfh+g_e?g*cPcIf|e2f_c,gth$f)d~e:cmb{c`fJf+c*d;c4fLf,cOf-chhyhOgugahuhAhihbb4 ygHgJgCgzgrg} wd%fO d }fV Wf~ sbkcac5 ~f:flcw q Qc- ,e. tbs 'fv $ K (b[ t l b ucB C f ggub^ )bgbvb_ ) r ; W P wbQ Uebcx *bxb(fvcc * igy ` S T L jf)fh I i j wcXeYe% ybzbk = 0c0 1 J m 2 1c? n e xcM Zeo p z 3 g @ ibbgqh-e.eeg-gXfycwexeyezcAcBcCckfBeCezdAd+d,dbfGb+b,b-bBd;d=dHb[d]d^d_dIbJbKb.b/b:b;bFd{d|dLb=b?b@b[b]b^bRcHdIdcedeeefe_bShThUh/hVhWhXh:h4h5h6h?h7h8h9h@h`h{h)h+h
435cdef inline stride_t _dense_strides_c(BaseLayout& base) except? -1 nogil:
436 cdef int ndim = base.ndim 2vg5fLdmh%gPfdfefScTc.cccMdmfDc/e:emcEc;eMb2eOdFc?eGcnc7eXg.gdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a nfkeof#cpfYcPdzf$c@eLcoh'g+fQdhdHcQb9e#eIcJcRbldoc%emdSbFeodTbpcIeJeSdpdKcqcrc(eMeUb`brdOescPetcVb{b|ble}boeperiniei~haimgngghogSfTf(gUfEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbwh;gSe@fAfue/crf[c'cDfEf]c-fFfuf^c(c!gch9fcdqg)g1fkh]e(dUg#g/fvfNcTgOc)cfh+g_e?g*cPcIf|e2f_c,gth$f)d~e:cmb{c`fJf+c*d;c4fLf,cOf-chhyhOgugahuhAhihbb4 ygHgJgCgzgrg} wd%fO d }fV Wf~ sbkcac5 ~f:flcw q Qc- ,e. tbs 'fv $ K (b[ t l b ucB C f ggub^ )bgbvb_ ) r ; W P wbQ Uebcx *bxb(fvcc * igy ` S T L jf)fh I i j wcXeYe% ybzbk = 0c0 1 J m 2 1c? n e xcM Zeo p z 3 g @ ibbgqh-e.eeg-gXfycwexeyezcAcBcCckfBeCezdAd+d,dbfGb+b,b-bBd;d=dHb[d]d^d_dIbJbKb.b/b:b;bFd{d|dLb=b?b@b[b]b^bRcHdIdcedeeefe_bShThUh/hVhWhXh:h4h5h6h?h7h8h9h@h`h{h)h+h
437 _assure_strides_ptr(base) 2vg5fLdmh%gPfdfefScTc.cccMdmfDc/e:emcEc;eMb2eOdFc?eGcnc7eXg.gdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a nfkeof#cpfYcPdzf$c@eLcoh'g+fQdhdHcQb9e#eIcJcRbldoc%emdSbFeodTbpcIeJeSdpdKcqcrc(eMeUb`brdOescPetcVb{b|ble}boeperiniei~haimgngghogSfTf(gUfEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbwh;gSe@fAfue/crf[c'cDfEf]c-fFfuf^c(c!gch9fcdqg)g1fkh]e(dUg#g/fvfNcTgOc)cfh+g_e?g*cPcIf|e2f_c,gth$f)d~e:cmb{c`fJf+c*d;c4fLf,cOf-chhyhOgugahuhAhihbb4 ygHgJgCgzgrg} wd%fO d }fV Wf~ sbkcac5 ~f:flcw q Qc- ,e. tbs 'fv $ K (b[ t l b ucB C f ggub^ )bgbvb_ ) r ; W P wbQ Uebcx *bxb(fvcc * igy ` S T L jf)fh I i j wcXeYe% ybzbk = 0c0 1 J m 2 1c? n e xcM Zeo p z 3 g @ ibbgqh-e.eeg-gXfycwexeyezcAcBcCckfBeCezdAd+d,dbfGb+b,b-bBd;d=dHb[d]d^d_dIbJbKb.b/b:b;bFd{d|dLb=b?b@b[b]b^bRcHdIdcedeeefe_bShThUh/hVhWhXh:h4h5h6h?h7h8h9h@h`h{h)h+h
438 return _dense_strides_c_ptrs(ndim, base.shape, base.strides) 2vg5fLdmh%gPfdfefScTc.cccMdmfDc/e:emcEc;eMb2eOdFc?eGcnc7eXg.gdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a nfkeof#cpfYcPdzf$c@eLcoh'g+fQdhdHcQb9e#eIcJcRbldoc%emdSbFeodTbpcIeJeSdpdKcqcrc(eMeUb`brdOescPetcVb{b|ble}boeperiniei~haimgngghogSfTf(gUfEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbwh;gSe@fAfue/crf[c'cDfEf]c-fFfuf^c(c!gch9fcdqg)g1fkh]e(dUg#g/fvfNcTgOc)cfh+g_e?g*cPcIf|e2f_c,gth$f)d~e:cmb{c`fJf+c*d;c4fLf,cOf-chhyhOgugahuhAhihbb4 ygHgJgCgzgrg} wd%fO d }fV Wf~ sbkcac5 ~f:flcw q Qc- ,e. tbs 'fv $ K (b[ t l b ucB C f ggub^ )bgbvb_ ) r ; W P wbQ Uebcx *bxb(fvcc * igy ` S T L jf)fh I i j wcXeYe% ybzbk = 0c0 1 J m 2 1c? n e xcM Zeo p z 3 g @ ibbgqh-e.eeg-gXfycwexeyezcAcBcCckfBeCezdAd+d,dbfGb+b,b-bBd;d=dHb[d]d^d_dIbJbKb.b/b:b;bFd{d|dLb=b?b@b[b]b^bRcHdIdcedeeefe_bShThUh/hVhWhXh:h4h5h6h?h7h8h9h@h`h{h)h+h
441cdef inline stride_t _dense_strides_f(BaseLayout& base) except? -1 nogil:
442 cdef int ndim = base.ndim 2lhwg6fffgflfNd1e=e3e4e5e6e8ewfxfyf}cQfRfph*fid!ejdkd$endGe'eHeRdKeLeqd)eNesdTdUdmenesimifibicivh?fBfCf,fsftfGfHfdhpgjh!f.feh*g^e=g`e*e{e}e3fsh#f`cafVf{fKfMfNfxhzhPgBhGgIgfbDg# |fxd, ~ sb[fkc+eA lcag6 - abtb(bfg] ub)bvbD ydTeE _ ) ; wbbcR ( *bhgF G xbX * VeH Y WeZ { / ybzb| = 7 ? U 8 0ez 9 @ N ! 2ccgdgrhvezeAeDeEeYf-d.d/d:d?d@dCd`dDdEdcf}d~daeGdbeJdgeheieKdYhZh0h;h1h2h3h=h!h#h$h[h%h'h(h]h*h
443 _assure_strides_ptr(base) 2lhwg6fffgflfNd1e=e3e4e5e6e8ewfxfyf}cQfRfph*fid!ejdkd$endGe'eHeRdKeLeqd)eNesdTdUdmenesimifibicivh?fBfCf,fsftfGfHfdhpgjh!f.feh*g^e=g`e*e{e}e3fsh#f`cafVf{fKfMfNfxhzhPgBhGgIgfbDg# |fxd, ~ sb[fkc+eA lcag6 - abtb(bfg] ub)bvbD ydTeE _ ) ; wbbcR ( *bhgF G xbX * VeH Y WeZ { / ybzb| = 7 ? U 8 0ez 9 @ N ! 2ccgdgrhvezeAeDeEeYf-d.d/d:d?d@dCd`dDdEdcf}d~daeGdbeJdgeheieKdYhZh0h;h1h2h3h=h!h#h$h[h%h'h(h]h*h
444 cdef stride_t stride = 1 2lhwg6fffgflfNd1e=e3e4e5e6e8ewfxfyf}cQfRfph*fid!ejdkd$endGe'eHeRdKeLeqd)eNesdTdUdmenesimifibicivh?fBfCf,fsftfGfHfdhpgjh!f.feh*g^e=g`e*e{e}e3fsh#f`cafVf{fKfMfNfxhzhPgBhGgIgfbDg# |fxd, ~ sb[fkc+eA lcag6 - abtb(bfg] ub)bvbD ydTeE _ ) ; wbbcR ( *bhgF G xbX * VeH Y WeZ { / ybzb| = 7 ? U 8 0ez 9 @ N ! 2ccgdgrhvezeAeDeEeYf-d.d/d:d?d@dCd`dDdEdcf}d~daeGdbeJdgeheieKdYhZh0h;h1h2h3h=h!h#h$h[h%h'h(h]h*h
445 cdef int i = 0 2lhwg6fffgflfNd1e=e3e4e5e6e8ewfxfyf}cQfRfph*fid!ejdkd$endGe'eHeRdKeLeqd)eNesdTdUdmenesimifibicivh?fBfCf,fsftfGfHfdhpgjh!f.feh*g^e=g`e*e{e}e3fsh#f`cafVf{fKfMfNfxhzhPgBhGgIgfbDg# |fxd, ~ sb[fkc+eA lcag6 - abtb(bfg] ub)bvbD ydTeE _ ) ; wbbcR ( *bhgF G xbX * VeH Y WeZ { / ybzb| = 7 ? U 8 0ez 9 @ N ! 2ccgdgrhvezeAeDeEeYf-d.d/d:d?d@dCd`dDdEdcf}d~daeGdbeJdgeheieKdYhZh0h;h1h2h3h=h!h#h$h[h%h'h(h]h*h
446 while i < ndim: 2lhwg6fffgflfNd1e=e3e4e5e6e8ewfxfyf}cQfRfph*fid!ejdkd$endGe'eHeRdKeLeqd)eNesdTdUdmenesimifibicivh?fBfCf,fsftfGfHfdhpgjh!f.feh*g^e=g`e*e{e}e3fsh#f`cafVf{fKfMfNfxhzhPgBhGgIgfbDg# |fxd, ~ sb[fkc+eA lcag6 - abtb(bfg] ub)bvbD ydTeE _ ) ; wbbcR ( *bhgF G xbX * VeH Y WeZ { / ybzb| = 7 ? U 8 0ez 9 @ N ! 2ccgdgrhvezeAeDeEeYf-d.d/d:d?d@dCd`dDdEdcf}d~daeGdbeJdgeheieKdYhZh0h;h1h2h3h=h!h#h$h[h%h'h(h]h*h
447 base.strides[i] = stride 2ffgflfNd1e=e3e4e5e6e8ewfxfyf}cQfRf*fid!ejdkd$endGe'eHeRdKeLeqd)eNesdTdUdmenemifibici?fBfCf,fsftfGfHfdhpgjh!f.feh*g^e=g`e*e{e}e3f#f`cafVf{fKfMfNfGgIgfbDg# |fxd, ~ sb[fkc+eA lcag6 - abtb(bfg] ub)bvbD ydTeE _ ) ; wbbcR ( *bhgF G xbX * VeH Y WeZ { / ybzb| = 7 ? U 8 0ez 9 @ N ! 2cvezeAeDeEeYf-d.d/d:d?d@dCd`dDdEdcf}d~daeGdbeJdgeheieKdYhZh0h1h2h3h!h#h$h%h'h(h*h
448 stride = _overflow_checked_mul(stride, base.shape[i]) 2ffgflfNd1e=e3e4e5e6e8ewfxfyf}cQfRf*fid!ejdkd$endGe'eHeRdKeLeqd)eNesdTdUdmenemifibici?fBfCf,fsftfGfHfdhpgjh!f.feh*g^e=g`e*e{e}e3f#f`cafVf{fKfMfNfGgIgfbDg# |fxd, ~ sb[fkc+eA lcag6 - abtb(bfg] ub)bvbD ydTeE _ ) ; wbbcR ( *bhgF G xbX * VeH Y WeZ { / ybzb| = 7 ? U 8 0ez 9 @ N ! 2cvezeAeDeEeYf-d.d/d:d?d@dCd`dDdEdcf}d~daeGdbeJdgeheieKdYhZh0h1h2h3h!h#h$h%h'h(h*h
449 i += 1 2ffgflfNd1e=e3e4e5e6e8ewfxfyf}cQfRf*fid!ejdkd$endGe'eHeRdKeLeqd)eNesdTdUdmenemifibici?fBfCf,fsftfGfHfdhpgjh!f.feh*g^e=g`e*e{e}e3f#f`cafVf{fKfMfNfGgIgfbDg# |fxd, ~ sb[fkc+eA lcag6 - abtb(bfg] ub)bvbD ydTeE _ ) ; wbbcR ( *bhgF G xbX * VeH Y WeZ { / ybzb| = 7 ? U 8 0ez 9 @ N ! 2cvezeAeDeEeYf-d.d/d:d?d@dCd`dDdEdcf}d~daeGdbeJdgeheieKdYhZh0h1h2h3h!h#h$h%h'h(h*h
450 if stride == 0: 2lhwg6fffgflfNd1e=e3e4e5e6e8ewfxfyf}cQfRfph*fid!ejdkd$endGe'eHeRdKeLeqd)eNesdTdUdmenesimifibicivh?fBfCf,fsftfGfHfdhpgjh!f.feh*g^e=g`e*e{e}e3fsh#f`cafVf{fKfMfNfxhzhPgBhGgIgfbDg# |fxd, ~ sb[fkc+eA lcag6 - abtb(bfg] ub)bvbD ydTeE _ ) ; wbbcR ( *bhgF G xbX * VeH Y WeZ { / ybzb| = 7 ? U 8 0ez 9 @ N ! 2ccgdgrhvezeAeDeEeYf-d.d/d:d?d@dCd`dDdEdcf}d~daeGdbeJdgeheieKdYhZh0h;h1h2h3h=h!h#h$h[h%h'h(h]h*h
451 _zero_strides(base)
452 return stride 2lhwg6fffgflfNd1e=e3e4e5e6e8ewfxfyf}cQfRfph*fid!ejdkd$endGe'eHeRdKeLeqd)eNesdTdUdmenesimifibicivh?fBfCf,fsftfGfHfdhpgjh!f.feh*g^e=g`e*e{e}e3fsh#f`cafVf{fKfMfNfxhzhPgBhGgIgfbDg# |fxd, ~ sb[fkc+eA lcag6 - abtb(bfg] ub)bvbD ydTeE _ ) ; wbbcR ( *bhgF G xbX * VeH Y WeZ { / ybzb| = 7 ? U 8 0ez 9 @ N ! 2ccgdgrhvezeAeDeEeYf-d.d/d:d?d@dCd`dDdEdcf}d~daeGdbeJdgeheieKdYhZh0h;h1h2h3h=h!h#h$h[h%h'h(h]h*h
455cdef inline stride_t _dense_strides_in_order(BaseLayout& base, axis_vec_t& stride_order) except? -1 nogil:
456 cdef int ndim = base.ndim 2bhUc3c4c5c=c6c?c7c8cu a kbOgugPgbb4 fb} # O d V , A 5 w 6 q . abs v $ K [ ] t l b B C f ^ gbD E r W P Q x R ( F G X c y ` S T L H Y h I i j % Z { / | k 0 1 J m 2 7 n e M U 8 o p 3 9 g N !
457 if <size_t>ndim != stride_order.size(): 2bhUc3c4c5c=c6c?c7c8cu a kbOgugPgbb4 fb} # O d V , A 5 w 6 q . abs v $ K [ ] t l b B C f ^ gbD E r W P Q x R ( F G X c y ` S T L H Y h I i j % Z { / | k 0 1 J m 2 7 n e M U 8 o p 3 9 g N !
458 raise ValueError(f"stride_order must have the same length as shape. Shape has {ndim} dimensions, but stride_order has {stride_order.size()} elements.")
459 _assure_strides_ptr(base) 2bhUc3c4c5c=c6c?c7c8cu a kbOgugPgbb4 fb} # O d V , A 5 w 6 q . abs v $ K [ ] t l b B C f ^ gbD E r W P Q x R ( F G X c y ` S T L H Y h I i j % Z { / | k 0 1 J m 2 7 n e M U 8 o p 3 9 g N !
460 cdef stride_t stride = 1 2bhUc3c4c5c=c6c?c7c8cu a kbOgugPgbb4 fb} # O d V , A 5 w 6 q . abs v $ K [ ] t l b B C f ^ gbD E r W P Q x R ( F G X c y ` S T L H Y h I i j % Z { / | k 0 1 J m 2 7 n e M U 8 o p 3 9 g N !
461 cdef int i = ndim - 1 2bhUc3c4c5c=c6c?c7c8cu a kbOgugPgbb4 fb} # O d V , A 5 w 6 q . abs v $ K [ ] t l b B C f ^ gbD E r W P Q x R ( F G X c y ` S T L H Y h I i j % Z { / | k 0 1 J m 2 7 n e M U 8 o p 3 9 g N !
462 cdef axes_mask_t axis_order_mask = 0 2bhUc3c4c5c=c6c?c7c8cu a kbOgugPgbb4 fb} # O d V , A 5 w 6 q . abs v $ K [ ] t l b B C f ^ gbD E r W P Q x R ( F G X c y ` S T L H Y h I i j % Z { / | k 0 1 J m 2 7 n e M U 8 o p 3 9 g N !
463 cdef axes_mask_t axis_mask
464 cdef axis_t axis
465 while i >= 0: 2bhUc3c4c5c=c6c?c7c8cu a kbOgugPgbb4 fb} # O d V , A 5 w 6 q . abs v $ K [ ] t l b B C f ^ gbD E r W P Q x R ( F G X c y ` S T L H Y h I i j % Z { / | k 0 1 J m 2 7 n e M U 8 o p 3 9 g N !
466 axis = stride_order[i] 2Uc3c4c5c=c6c?c7c8cu a kbbb4 fb} # O d V , A 5 w 6 q . abs v $ K [ ] t l b B C f ^ gbD E r W P Q x R ( F G X c y ` S T L H Y h I i j % Z { / | k 0 1 J m 2 7 n e M U 8 o p 3 9 g N !
467 if not _normalize_axis(axis, ndim): 2Uc3c4c5c=c6c?c7c8cu a kbbb4 fb} # O d V , A 5 w 6 q . abs v $ K [ ] t l b B C f ^ gbD E r W P Q x R ( F G X c y ` S T L H Y h I i j % Z { / | k 0 1 J m 2 7 n e M U 8 o p 3 9 g N !
468 raise ValueError(f"Invalid stride order: axis {axis} out of range for {ndim}D tensor")
469 axis_mask = _axis2mask(axis) 2Uc3c4c5c=c6c?c7c8cu a kbbb4 fb} # O d V , A 5 w 6 q . abs v $ K [ ] t l b B C f ^ gbD E r W P Q x R ( F G X c y ` S T L H Y h I i j % Z { / | k 0 1 J m 2 7 n e M U 8 o p 3 9 g N !
470 if axis_order_mask & axis_mask: 2Uc3c4c5c=c6c?c7c8cu a kbbb4 fb} # O d V , A 5 w 6 q . abs v $ K [ ] t l b B C f ^ gbD E r W P Q x R ( F G X c y ` S T L H Y h I i j % Z { / | k 0 1 J m 2 7 n e M U 8 o p 3 9 g N !
471 raise ValueError(f"The stride order must be a permutation. Axis {axis} appears multiple times.")
472 axis_order_mask |= axis_mask 2Uc3c4c5c=c6c?c7c8cu a kbbb4 fb} # O d V , A 5 w 6 q . abs v $ K [ ] t l b B C f ^ gbD E r W P Q x R ( F G X c y ` S T L H Y h I i j % Z { / | k 0 1 J m 2 7 n e M U 8 o p 3 9 g N !
473 base.strides[axis] = stride 2Uc3c4c5c=c6c?c7c8cu a kbbb4 fb} # O d V , A 5 w 6 q . abs v $ K [ ] t l b B C f ^ gbD E r W P Q x R ( F G X c y ` S T L H Y h I i j % Z { / | k 0 1 J m 2 7 n e M U 8 o p 3 9 g N !
474 stride = _overflow_checked_mul(stride, base.shape[axis]) 2Uc3c4c5c=c6c?c7c8cu a kbbb4 fb} # O d V , A 5 w 6 q . abs v $ K [ ] t l b B C f ^ gbD E r W P Q x R ( F G X c y ` S T L H Y h I i j % Z { / | k 0 1 J m 2 7 n e M U 8 o p 3 9 g N !
475 i -= 1 2Uc3c4c5c=c6c?c7c8cu a kbbb4 fb} # O d V , A 5 w 6 q . abs v $ K [ ] t l b B C f ^ gbD E r W P Q x R ( F G X c y ` S T L H Y h I i j % Z { / | k 0 1 J m 2 7 n e M U 8 o p 3 9 g N !
476 if stride == 0: 2bhUc3c4c5c=c6c?c7c8cu a kbOgugPgbb4 fb} # O d V , A 5 w 6 q . abs v $ K [ ] t l b B C f ^ gbD E r W P Q x R ( F G X c y ` S T L H Y h I i j % Z { / | k 0 1 J m 2 7 n e M U 8 o p 3 9 g N !
477 _zero_strides(base)
478 return stride 2bhUc3c4c5c=c6c?c7c8cu a kbOgugPgbb4 fb} # O d V , A 5 w 6 q . abs v $ K [ ] t l b B C f ^ gbD E r W P Q x R ( F G X c y ` S T L H Y h I i j % Z { / | k 0 1 J m 2 7 n e M U 8 o p 3 9 g N !
481cdef inline bint _is_contiguous_c(int64_t volume, BaseLayout& base) except -1 nogil:
482 if volume == 0 or base.strides == NULL: 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
483 return True 2Ld%gPfScTc.cccDcmcEcMbFcGcncXgdccb+ ' dbnhGhObAbebBbCbDbPbhfjba ke#cYc$cLc'gQdHcQbIcJcRbocSbTbpcKcqcrcUb`bsctcVb{b|b}bSfTf(gUfMh,hEhCh-hJhKhHhqfVd$gZfQgkglg0fZcYgecfcgchcMcZgEbWbXbYbicAgZb0b1b2b3b4b5b6b7b8b9b!bjclb]f^f7f8f#b_f$bhb: FhNhIhDhLh.h0g1g2g3g%b4g5g'b6g7g8g9gobpbBgsg=fqbFbtgrb;gSeue/c[c'c]c^c(c!gpgcdqg)g1f(dUg#gNcTgOc)c*cPc_c,g)d~e:cafmb+c*d;c,c-chhugahih4 ygzgrg%fO d Wf~ acq Qc- s 'fv t l b ucB C f _ ) r ; W (fvcc * )fh I i j wck = 0cm n e xco p z g ib-e.e-gyczcAcBcCckfGb+b,b-bHbIbJbKb.b/b:b;bLb=b?b@b[b]b^bRc_b
484 cdef int64_t stride = 1 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
485 cdef int64_t j = base.ndim - 1 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
486 cdef extent_t extent
487 while j >= 0: 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
488 extent = base.shape[j] 2vg5fwgLd6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngogSfTfUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-cGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
489 if extent != 1: 2vg5fwgLd6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngogSfTfUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-cGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
490 if base.strides[j] != stride: 25fLd6fdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPb|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepe$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-c} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
491 return False 25fLd6fdfefffScgfTcccMdNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8e3c5c=c?c7c8cVccbNbnb+ ' WcdbddAbedfdgdXcebBbCbDbu a kbpfyfYcPd}cQfRfhdQbid!ejdkdRbld$emdndSbodGe'eTbHeRdpcIeJeSdpdKeLeqcrcMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepeVgicAgQe]f^f7f8f%c_fLgMgNgEghbFg~b: Kg~cadobpbBgsg=fbdWgRgqbudSgFbtgAfBf/crfCfsftf[c'cDfEf]cFfufGf^cHf(c9fdhpgcdjh!f]e.feh*g^eNc=g`e*e{ePc|e}e2f3f_c`cafmb{cVf{fKfMfwdxdd , sbA acw - . tbv K (bfg] l b C f ub^ )bvbD ydTeE _ ) ; P wbx R ( *bhgF G xbX vcc * y ` T L VeH Y Weh I j wcXeYeZ { / ybzb| 0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
492 stride *= extent 2.clfccMdmfNdDc/e:emcEc;eMb2eOdFc?eGcnc7eUc4c5c6cdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPb|cjbu a nfwfkeofxf#cpfYcPd}czf$c@eLchdHcQbid9ejd#ekdIcJcRbldoc%emdndSbFeodTbRdpcIeJeSdpdKcqcrc(eMeqdUb`brdOesdscPeTdtcVbUd{b|ble}boepe$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fcdqg)g1fkh]e(dUg#g/fvfNcTgOc)cfh+g_e?g*cPcIf|e2f_c#f$f)d~e:cmb{c`fJf+c*d;c4fLf,cNfOf-c} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ t l b ucB C f ggub^ )bgbvbD ydE _ ) r ; W P wbQ Uebcx R *bF G xb(fvcc * igy ` S T L jfH )fh I i j wcXeYe% / ybzbk = 0c0 1 J m 2 1c? n e xcM ZeU o p z 3 g @ N ibXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbfGb+b,b-bBd;d=dHb[d]d^d_dIbJbKb.b/b:b;bFd{d|dLb=b?b@b[b]b^bRcHdIdcedeeefe_b
493 j -= 1 2vgwgPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd4eFc?e6eGcnc7eUc4c5c6cdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a nfwfkeofxf#cpfyfYcPd}czf$c@eLc*f+fQdhdHcQbid9ejd#ekdIcJcRbldoc%emdndSbFeodGeTbRdpcIeJeSdpdKcqcrc(eMeqdUb`brdOesdscPeTdtcVbUd{b|blemene}boepemgngogSfTfUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fcdqg)g1fkh]e(dUg#g/fvfNcTgOc)cfh+g_e?g*cPcIf|e2f3f_c#f$f)d~e:cmb{c`fJf+c{f*d;c4fLf,cMfNfOf-cGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ t l b ucB C f ggub^ )bgbvbD ydE _ ) r ; W P wbQ Uebcx R *bF G xb(fvcc * igy ` S T L jfH )fh I i j wcXeYe% / ybzbk = 0c0 1 J m 2 1c? n e xcM ZeU o p z 3 g @ N ibbgcgdg-e.eegXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbfGb+b,b-bBd;d=dCdHb[d]d^d_dDdEdIbJbKb.b/b:b;bFd{d|dGdLb=b?b@b[b]b^bRcHdIdcedeeefeJdKd_b
494 return True 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;eMb2eOdFc?eGcnc7ebhUc4c6cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a nfwfkeofxf#cpfYcPdzf$c@eLcohph'g*f+fQdhdHcQbid9ejd#ekdIcJcRbldoc%emdndSbFeodTbpcIeJeSdpdKcqcrc(eMeqdUb`brdOesdscPetcVb{b|ble}boepemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fcdqg)g1fkh]e.f(dUg#g/fvfNcTgOc)cfh+g_e?g*cPcIf|e2f_c,gshth#f$f)d~e:cmb{c`fJf+c{f*d;c4fLf,cNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ t l b ucB C f ggub^ )bgbvbD ydE _ ) r ; W P wbQ Uebcx R *bF G xb(fvcc * igy ` S T L jfH )fh I i j wcXeYe% / ybzbk = 0c0 1 J m 2 1c? n e xcM Zeo p z 3 g @ N ibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbfGb+b,b-bBd;d=dHb[d]d^d_dIbJbKb.b/b:b;bFd{d|dLb=b?b@b[b]b^bRcHdIdcedeeefe_b
497cdef inline bint _is_contiguous_f(int64_t volume, BaseLayout& base) except -1 nogil:
498 if volume == 0: 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
499 return True 2nhGhMh,hEhCh-hJhKhHh$gZfQgkglg0fFhNhIhDhLh.hpgqg1f~e:caf
500 cdef int ndim = base.ndim 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
501 cdef int64_t j = 0 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
502 if base.strides == NULL: 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
503 # find first non-singleton dimension
504 while j < ndim and base.shape[j] == 1: 2Ld%gPfScTc.cccDcmcEcMbFcGcncXgdccb+ ' dbObAbebBbCbDbPbhfjba ke#cYc$cLc'gQdHcQbIcJcRbocSbTbpcKcqcrcUb`bsctcVb{b|b}bSfTf(gUfqfVdZfQg0fZcYgecfcgchcMcZgEbWbXbYbicAgZb0b1b2b3b4b5b6b7b8b9b!bjclb]f^f7f8f#b_f$bhb: 0g1g2g3g%b4g5g'b6g7g8g9gobpbBgsg=fqbFbtgrb;gSeue/c[c'c]c^c(c!gcd)g1f(dUg#gNcTgOc)c*cPc_c,g)d:cmb+c*d;c,c-chhugahih4 ygzgrg%fO d Wf~ acq Qc- s 'fv t l b ucB C f _ ) r ; W (fvcc * )fh I i j wck = 0cm n e xco p z g ib-e.e-gyczcAcBcCckfGb+b,b-bHbIbJbKb.b/b:b;bLb=b?b@b[b]b^bRc_b
505 j += 1 2ScTcObPbLcQd{b|b}bqfVdrb_c+c*d;c,c-c4 ygzgrg
506 # if any subsequent dimension is not a singleton, return False
507 for i in range(j + 1, ndim): 2Ld%gPfScTc.cccDcmcEcMbFcGcncXgdccb+ ' dbObAbebBbCbDbPbhfjba ke#cYc$cLc'gQdHcQbIcJcRbocSbTbpcKcqcrcUb`bsctcVb{b|b}bSfTf(gUfqfVdZfQg0fZcYgecfcgchcMcZgEbWbXbYbicAgZb0b1b2b3b4b5b6b7b8b9b!bjclb]f^f7f8f#b_f$bhb: 0g1g2g3g%b4g5g'b6g7g8g9gobpbBgsg=fqbFbtgrb;gSeue/c[c'c]c^c(c!gcd)g1f(dUg#gNcTgOc)c*cPc_c,g)d:cmb+c*d;c,c-chhugahih4 ygzgrg%fO d Wf~ acq Qc- s 'fv t l b ucB C f _ ) r ; W (fvcc * )fh I i j wck = 0cm n e xco p z g ib-e.e-gyczcAcBcCckfGb+b,b-bHbIbJbKb.b/b:b;bLb=b?b@b[b]b^bRc_b
508 if base.shape[i] != 1: 2DcmcEcMbFcGcnccb+ ' dbObAbebBbCbDbPbjba Yc$cLcHcQbIcJcRbocSbTbpcKcqcrcUb`bsctcVb{b|b}bEbWbXbYbicAgZb0b1b2b3b4b5b6b7b8b9b!bjclb]f^f7f8f#b_f$bhb: 0g1g2g3g%b4g5g'b6g7g8g9gobpbBgsg=fqbFbtgrb!gcd)g1f(dUg#gNcTgOc)c*cPc_c:cmb+c*d;c,c-ct l b ucB C f _ ) r ; W (fvcc * )fh I i j wck = 0cm n e xco p z g ibGb+b,b-bHbIbJbKb.b/b:b;bLb=b?b@b[b]b^bRc_b
509 return False 2DcmcEcMbFcGcnccb+ ' dbObAbebBbCbDbPbjba Yc$cLcHcQbIcJcRbocSbTbpcKcqcrcUb`bsctcVb{b|b}bEbWbXbYbicAgZb0b1b2b3b4b5b6b7b8b9b!bjclb]f^f7f8f#b_f$bhb: 0g1g2g3g%b4g5g'b6g7g8g9gobpbBgsg=fqbFbtgrb!gcd)g1f(dUg#gNcTgOc)c*cPc_c:cmb+c*d;c,ct l b ucB C f _ ) r ; W (fvcc * )fh I i j wck = 0cm n e xco p z g ibGb+b,b-bHbIbJbKb.b/b:b;bLb=b?b@b[b]b^bRc_b
510 return True 2Ld%gPfScTc.cccXgdchfke#c'gQdSfTf(gUfqfVdZfQg0fZcYgecfcgchcMcZg;gSeue/c[c'c]c^c(c,g)d-chhugahih4 ygzgrg%fO d Wf~ acq Qc- s 'fv -e.e-gyczcAcBcCckf
511 cdef int64_t stride = 1 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
512 cdef extent_t extent
513 while j < ndim: 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
514 extent = base.shape[j] 2vg5fwgLd6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngogSfTfUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-cGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
515 if extent != 1: 2vg5fwgLd6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngogSfTfUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-cGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
516 if base.strides[j] != stride: 25fLd6fdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPb|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepe$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-c} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
517 return False 25fLd6fdfefffScgfTcccMdNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8e4c5c=c6c?c7cVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPb|cjbu a kbpfYcPd}czf$c@eLchdHcQbid9ejd#ekdIcJcRbldoc%emdndSbFeodTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb`brdNeOesdscPeTdtcVbUd{b|blemene}boepeqereecfcgcsehcteEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbAfBf/crfCfsftf[c'cDfEf]cFfufGf^cHf(c!gch9fcdqg)g1fkh!f]e(dUg#g/fvf^eNcTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c~e:c`cmb{c`fJf+c*d;cKf4fLf,cwdxdd , sbA acw - . tbv $ K (b[ ] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R *bF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
518 stride *= extent 2.clfccMdmfNd1eMbOd=e3e4e5e6e8eUc3c7c8cdcjenb' |cjbu a nfwfkeofxf#cyf}cQf@eRfhdQbid!ejdkdRbld$emdndSbodGe'eTbHeRdSdpdKeLeqdUb)e`brdNesdTdVbUdmene$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdlb@c~b: ?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(cdhpgjh!f.feh*g^e=gOc_e`e*e{e}e3f#f$f)d`cafVf{fKfMfNfOf-c} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv K (b[ fg] l b ucB f ub)bvbD ydTeE _ ) ; wbQ Uebcx R ( *bhgF G xbX c * y S L VeH Y Wei Z { / ybzb| k = J 7 ? e M U 8 0ez 9 g @ N ! 2cXfveycwexeyezcAczeAeBcCckfBeCeDeEeYf-d.d/d:d?d@dCd`dDdEdcf}d~daeGdbeJdgeheieKd
519 j += 1 2vgwgPfdfefffScgfTc.clfccMdmfNd1eMbOd=e3e4e5e6e8eUc3c7c8cdcjenb' 9cOb!cPbjghf|cjbu a nfwfkeofxf#cyf}cQf@eLcRf*f+fQdhdQbid!ejdkdRbld$eocmdndSbFeodGe'eTbHeRdSdpdKeLeqdUb)e`brdNesdTdVbUd{b|blemene}boepemgngogSfTfUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdlb@c~b: vdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(cdhpgjh!f.feh*g^e=gOc_e`e*e{e}e2f3f_c#f$f)d`caf`fJfVf+c{f*d;cKf4fLf,cMfNfOf-cGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv K (b[ fg] l b ucB f ub)bvbD ydTeE _ ) ; wbQ Uebcx R ( *bhgF G xbX c * y S L VeH Y Wei Z { / ybzb| k = J 7 ? e M U 8 0ez 9 g @ N ! 2cbgcgdg-e.eegXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd-d.d/d:dGbBd?d@dCdHb`dDdEdcfIbJbKbFd}d~daeGdbeLbHdIdJdgeheieKd
520 return True 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNd1eMbOd=e3e4e5e6e8ebhUc3c8cXg.gdcjejghf|cjbu a nfwfkeofxf#cyf}cQf@eRfohph'g*f+fQdhdQbid!ejdkdRbld$emdndSbodGe'eTbHeRdpdKeLeqdUb)erdNesdTdVbUdmenemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdlb@c~b: vhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(cdhpgjh!f.f(d/feh*g^e=gOc_e`e*e{e}e3f,gshth#f$f)d`caf`fVf{f*dKfMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv K (b[ fg] l b ucB f ub)bvbD ydTeE _ ) ; wbQ Uebcx R ( *bhgF G xbX c * y S L VeH Y Wei Z { / ybzb| k = J 7 ? e U 8 0ez 9 @ N ! 2cbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYf-d.d/d:d?d@dCd`dDdEdcf}d~daeGdbeJdgeheieKd
523cdef inline bint _is_contiguous_any(int64_t volume, BaseLayout& base, axis_vec_t& axis_order) except -1 nogil:
524 if volume == 0 or base.strides == NULL: 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
525 return True 2Ld%gPfScTc.cccDcmcEcMbFcGcncXgdccb+ ' dbnhGhObAbebBbCbDbPbhfjba ke#cYc$cLc'gQdHcQbIcJcRbocSbTbpcKcqcrcUb`bsctcVb{b|b}bSfTf(gUfMh,hEhCh-hJhKhHhqfVd$gZfQgkglg0fZcYgecfcgchcMcZgEbWbXbYbicAgZb0b1b2b3b4b5b6b7b8b9b!bjclb]f^f7f8f#b_f$bhb: FhNhIhDhLh.h0g1g2g3g%b4g5g'b6g7g8g9gobpbBgsg=fqbFbtgrb;gSeue/c[c'c]c^c(c!gpgcdqg)g1f(dUg#gNcTgOc)c*cPc_c,g)d~e:cafmb+c*d;c,c-chhugahih4 ygzgrg%fO d Wf~ acq Qc- s 'fv t l b ucB C f _ ) r ; W (fvcc * )fh I i j wck = 0cm n e xco p z g ib-e.e-gyczcAcBcCckfGb+b,b-bHbIbJbKb.b/b:b;bLb=b?b@b[b]b^bRc_b
526 cdef int64_t stride = 1 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
527 cdef int64_t j = base.ndim - 1 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
528 cdef axis_t axis
529 cdef extent_t extent
530 while j >= 0: 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
531 axis = axis_order[j] 2vg5fwgLd6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngogSfTfUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-cGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
532 extent = base.shape[axis] 2vg5fwgLd6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngogSfTfUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-cGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
533 if extent != 1: 2vg5fwgLd6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngogSfTfUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-cGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
534 if base.strides[axis] != stride: 25fLd6fdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPb|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepe$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-c} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
535 return False 25fLd6fdfefffScgfTcccMdNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eVccbWcdbddAbedfdgdXcebBbCbDbpfYcPd}cVgicAgQeKg~cadobpbBgsg=fbdWgRgqbudSgFbtgAfBf/crfCfsftf[c'cDfEf]cFfufGf^cHf(c9fcd!f]e^eNc`e*e{ePc|e}e2f3f_c`cmb{cKfwdxdd , sbA acw - . tbv ] b C ub^ vbD ydTeE ) P wbx F G xbX vcc * y ` T VeH Y Weh I j wcXeYeZ { / ybzb| zdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b^h_h
536 stride *= extent 2.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPb|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepe$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-c} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh
537 j -= 1 2vg5fwgLd6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngogSfTfUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-cGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh
538 return True 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh
541cdef inline int _validate_shape(BaseLayout& base) except -1 nogil:
542 for i in range(base.ndim): 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperi5isimi4iniqieifi~hoipiaibicimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWi6iShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hli7iti2idiOhPhQhRh^h_h
543 if base.shape[i] < 0: 23ivg5fwgLd6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemi4iniqieifi~hoipiaibicimgngogSfTfUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-cGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwixiyiziAiBiCiDiEiFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiViWi6iShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h|h`h{h)h*h+h}hli7iti2idiOhPhQhRh^h_h
544 raise ValueError("Extents must be non-negative")
545 return 0 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperi5isimi4iniqieifi~hoipiaibicimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWi6iShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hli7iti2idiOhPhQhRh^h_h
548cdef inline int _init_base_layout_from_tuple(BaseLayout& base, tuple shape, tuple strides) except -1:
549 cdef int ndim = len(shape) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperi5isimi4iniqieifi~hoipiaibicimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWi6iShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hli7itidi
550 init_base_layout(base, ndim) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperi5isimi4iniqieifi~hoipiaibicimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWi6iShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hli7itidi
551 for i in range(ndim): 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperi5isimi4iniqieifi~hoipiaibicimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWi6iShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hli7itidi
552 base.shape[i] = shape[i] 2vg5fwgLd6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemi4iniqieifi~hoipiaibicimgngogSfTfUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-cGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiViWi6iShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h|h`h{h)h*h+h}hli7itidi
553 _validate_shape(base) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperi5isimi4iniqieifi~hoipiaibicimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWi6iShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hli7itidi
555 if strides is None: 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperi5isimi4iniqieifi~hoipiaibicimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWi6iShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hli7itidi
556 base.strides = NULL 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperi5isimi4iniqieifi~hoipiaibicimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiXiYiViWiShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h`h{h)h*h+h}hdi
557 else:
558 if len(strides) != ndim: 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bgihiiijiki6iShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h+hli7iti
559 raise ValueError(f"Strides, if provided, must have the same length as shape. Shape has {ndim} dimensions, but strides has {len(strides)} elements.")
560 for i in range(ndim): 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bgihiiijiki6iShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h+hli7iti
561 base.strides[i] = strides[i] 2vg5fwgLd6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngogSfTfUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-cGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bgihiiijiki6iShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h|h+hli7iti
562 return 0 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperi5isimi4iniqieifi~hoipiaibicimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWi6iShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hli7itidi
565cdef inline int _init_base_layout_from_ptr(BaseLayout& base, int ndim, extent_t* shape, stride_t* strides) except -1 nogil:
566 init_base_layout(base, ndim) 23iOgugPgbb4 fb} wd# xdO d V , ~ sbkc+eA ac5 lcw 6 q Qc- ,e. abtbs v $ K (b[ ] t l b ucB C f ub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bF G xbX vcc * y ` S T L jfVeH Y Weh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e M U 8 o p z 3 9 g @ N ! 2cibuiviwiZixiyiziAi0iBiCiDiEi1iFi2iOhPhQhRh^h_h
567 for i in range(ndim): 23iOgugPgbb4 fb} wd# xdO d V , ~ sbkc+eA ac5 lcw 6 q Qc- ,e. abtbs v $ K (b[ ] t l b ucB C f ub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bF G xbX vcc * y ` S T L jfVeH Y Weh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e M U 8 o p z 3 9 g @ N ! 2cibuiviwiZixiyiziAi0iBiCiDiEi1iFi2iOhPhQhRh^h_h
568 base.shape[i] = shape[i] 23ibb4 fb} wd# xdO d V , ~ sbkc+eA ac5 lcw 6 q Qc- ,e. abtbs v $ K (b[ ] t l b ucB C f ub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bF G xbX vcc * y ` S T L jfVeH Y Weh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e M U 8 o p z 3 9 g @ N ! 2cibuiviwixiyiziAiBiCiDiEiFi2iOhPhQhRh^h_h
569 _validate_shape(base) 23iOgugPgbb4 fb} wd# xdO d V , ~ sbkc+eA ac5 lcw 6 q Qc- ,e. abtbs v $ K (b[ ] t l b ucB C f ub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bF G xbX vcc * y ` S T L jfVeH Y Weh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e M U 8 o p z 3 9 g @ N ! 2cibuiviwiZixiyiziAi0iBiCiDiEi1iFi2iOhPhQhRh^h_h
571 if strides == NULL: 23iOgugPgbb4 fb} wd# xdO d V , ~ sbkc+eA ac5 lcw 6 q Qc- ,e. abtbs v $ K (b[ ] t l b ucB C f ub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bF G xbX vcc * y ` S T L jfVeH Y Weh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e M U 8 o p z 3 9 g @ N ! 2cibuiviwiZixiyiziAi0iBiCiDiEi1iFi2iOhPhQhRh^h_h
572 base.strides = NULL 2OgugPgbb4 fb} wd# xdO d V , ~ sbkc+eA ac5 lcw 6 q Qc- ,e. abtbs v $ K (b[ ] t l b ucB C f ub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bF G xbX vcc * y ` S T L jfVeH Y Weh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e M U 8 o p z 3 9 g @ N ! 2cibZi0i1i
573 else:
574 for i in range(ndim): 23iuiviwixiyiziAiBiCiDiEiFi2iOhPhQhRh^h_h
575 base.strides[i] = strides[i] 23iuiviwixiyiziAiBiCiDiEiFi2iOhPhQhRh^h_h
576 return 0 23iOgugPgbb4 fb} wd# xdO d V , ~ sbkc+eA ac5 lcw 6 q Qc- ,e. abtbs v $ K (b[ ] t l b ucB C f ub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bF G xbX vcc * y ` S T L jfVeH Y Weh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e M U 8 o p z 3 9 g @ N ! 2cibuiviwiZixiyiziAi0iBiCiDiEi1iFi2iOhPhQhRh^h_h
578# ==============================
579# Strided layout helpers
580# ==============================
583cdef inline bint _has_valid_property(_StridedLayout self, Property prop) noexcept nogil:
584 return self._prop_mask & prop 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWiShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hliti2idiOhPhQhRh^h_h
587cdef inline void _mark_property_valid(_StridedLayout self, Property prop) noexcept nogil:
588 self._prop_mask |= prop 23ivglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperisiminieifi~haibicimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_buiviwiZixiyiziAi0iBiCiDiEi1iFiGiHiIiJiKiLigiMiNiOiPiQihiiijikiRiSiTiUiXiYiViWiShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hliti2idiOhPhQhRh^h_h
591cdef inline bint _boolean_property(_StridedLayout self, Property prop) noexcept nogil:
592 return self._boolean_props & prop 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
595cdef inline bint _set_boolean_property(_StridedLayout self, Property prop, bint value) noexcept nogil:
596 if value: 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
597 self._boolean_props |= prop 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh
598 else:
599 self._boolean_props &= ~prop 25fLd6fdfefffScgfTcccMdNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8e3c4c5c=c6c?c7c8cVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPb|cjbu a kbpfyfYcPd}czfQf$c@eLcRfhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepeqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMf} wdxdO d V , ~ sbkc+eA aclcw 6 q Qc- ,e. abtbv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
600 _mark_property_valid(self, prop) 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
601 return value 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bOhPhQhRh^h_h
604# ==============================
605# Conversion, validation and normalization helpers
606# ==============================
609cdef inline axes_mask_t _axis2mask(axis_t axis) noexcept nogil:
610 return 1ULL << axis 2Uc3c4c5c=c6c?c7c8cVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPb|cjbu a kbPd}c*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepeqieifi~hoipiaibiciEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: %d%b'd'bKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb~e:c`cafmb{cbb4 fb} # O d V , A 5 w 6 q . abs v $ K [ ] t l b B C f ^ gbD E r W P Q x R ( F G X c y ` S T L H Y h I i j % Z { / | k 0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegveycwexeyezcAczeAeBcCcBeCeDeEezdAd+d,d-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bHdIdcedeeefeJdgeheieKd_b
613cdef inline axes_mask_t flatten_all_axes_mask(int ndim) noexcept nogil:
614 if ndim == 0: 2Xg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbhfjba mgngghogSfTf(gUfxgqf;fVdifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: %d%b'd'bKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb
615 return 0 2Xg.ghfmgngghogSfTf(gUf
616 elif ndim == STRIDED_LAYOUT_MAX_NDIM: 2dcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjba xgqf;fVdifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: %d%b'd'bKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb
617 return AXES_MASK_ALL 2!cPbvdrb
618 return (1ULL << ndim) - 2 2dcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDbjba xgqf;fVdifZcqere[eecfcgcsehcteMcEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: %d%b'd'bKg~cadobpbBgsg=fbdWgRgqbudSgFbtg
621cdef inline OrderFlag _stride_order2vec(axis_vec_t& stride_order_vec, object stride_order) except? ORDER_NONE:
622 if stride_order == 'C': 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperisiminieifi~haibicimgngghogSfTf(gUfEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h`h{h)h*h+h
623 return ORDER_C 2vg5fLdmh%gPfdfefScTc.cccMdmfDc/e:emcEc;eMb2eOdFc?eGcnc7eXg.gdcjeVccbNbnb+ ' Wcdbnh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a nfkeof#cpfYcPdzf$c@eLcoh'g+fQdhdHcQb9e#eIcJcRbldoc%emdSbFeodTbpcIeJeSdpdKcqcrc(eMeUb`brdOescPetcVb{b|ble}boeperiniei~haimgngghogSfTf(gUfEhChJhKhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhDhLh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbwh;gSe@fAfue/crf[c'cDfEf]c-fFfuf^c(c!gch9fcdqg)g1fkh]e(dUg#g/fvfNcTgOc)cfh+g_e?g*cPcIf|e2f_c,gth$f)d~e:cmb{c`fJf+c*d;c4fLf,cOf-chhyhxhOgugahuhAhihbb4 ygHgJgCgDgzgrg} wd%fO d }fV Wf~ sb[fkcac5 ~f:flcw q Qc- ,e. tbs 'fv $ K (b[ t l b ucB C f ggub^ )bgbvb_ ) r ; W P wbQ Uebcx *bxb(fvcc * igy ` S T L jf)fh I i j wcXeYe% ybzbk = 0c0 1 J m 2 1c? n e xcM Zeo p z 3 g @ ibbgqh-e.eeg-gXfycwexeyezcAcBcCckfBeCezdAd+d,dbfGb+b,b-bBd;d=dHb[d]d^d_dIbJbKb.b/b:b;bFd{d|dLb=b?b@b[b]b^bRcHdIdcedeeefe_bShThUh/hVhWhXh:h4h5h6h?h7h8h9h@h`h{h)h+h
624 elif stride_order == 'F': 2lhwg6fffgflfNd1e=e3e4e5e6e8ebhUc3c4c5c=c6c?c7c8cu a kbwfxfyf}cQfRfph*fid!ejdkd$endGe'eHeRdKeLeqd)eNesdTdUdmenesimifibicivh?fBfCf,fsftfGfHfdhpgjh!f.feh*g^e=g`e*e{e}e3fsh#f`cafVf{fKfMfNfxhzhOgugahuhPgBhGgbb4 IgCgfbDgrg# |fxdd V , Wf~ sb[fkc+eA 5 :flcw ag6 q - abtbs $ K (bfg] t l b f ub)bvbD ydTeE _ ) r ; P wbQ bcx R ( *bhgF G xbX c * y S T L VeH Y Weh i j % Z { / ybzb| k = 0 1 J m 2 7 ? n e M U 8 0eo p z 3 9 g @ N ! 2ccgdgrhvezeAeDeEeYf-d.d/d:d?d@dCd`dDdEdcf}d~daeGdbeJdgeheieKdYhZh0h;h1h2h3h=h!h#h$h[h%h'h(h]h*h
625 return ORDER_F 2lhwg6fffgflfNd1e=e3e4e5e6e8ewfxfyf}cQfRfph*fid!ejdkd$endGe'eHeRdKeLeqd)eNesdTdUdmenesimifibicivh?fBfCf,fsftfGfHfdhpgjh!f.feh*g^e=g`e*e{e}e3fsh#f`cafVf{fKfMfNfxhzhahuhPgBhGgIgCgfbDgrg# |fxd, Wf~ sb[fkc+eA :flcag6 - abtb(bfg] ub)bvbD ydTeE _ ) ; wbbcR ( *bhgF G xbX * VeH Y WeZ { / ybzb| = 7 ? U 8 0ez 9 @ N ! 2ccgdgrhvezeAeDeEeYf-d.d/d:d?d@dCd`dDdEdcf}d~daeGdbeJdgeheieKdYhZh0h;h1h2h3h=h!h#h$h[h%h'h(h]h*h
626 elif isinstance(stride_order, tuple | list): 2bhUc3c4c5c=c6c?c7c8cu a kbOgugPgbb4 fb# d V A 5 w 6 q s $ K t l b f D E r P Q x R ( F G X c y S T L H Y h i j % Z k 0 1 J m 2 7 n e M U 8 o p 3 9 g N !
627 _tuple2axis_vec(stride_order_vec, stride_order) 2bhUc3c4c5c=c6c?c7c8cu a kbOgugPgbb4 fb# d V A 5 w 6 q s $ K t l b f D E r P Q x R ( F G X c y S T L H Y h i j % Z k 0 1 J m 2 7 n e M U 8 o p 3 9 g N !
628 return ORDER_PERM 2bhUc3c4c5c=c6c?c7c8cu a kbOgugPgbb4 fb# d V A 5 w 6 q s $ K t l b f D E r P Q x R ( F G X c y S T L H Y h i j % Z k 0 1 J m 2 7 n e M U 8 o p 3 9 g N !
629 return ORDER_NONE
632cdef inline int _tuple2axis_vec(axis_vec_t& vec, object t) except -1:
633 cdef int ndim = len(t) 2bhUc3c4c5c=c6c?c7c8cNbnb+ ' u a kbPd}cohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperi5isimi4iniqieifi~hoipiaibici]f^f7f8f%c_fLgMgNgEghbFg~b: Kg=f~e:c`cafmb{cOgugPgbb4 fb# d V A 5 w 6 q s $ K t l b f D E r P Q x R ( F G X c y S T L H Y h i j % Z k 0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
634 vec.resize(ndim) 2bhUc3c4c5c=c6c?c7c8cNbnb+ ' u a kbPd}cohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperi5isimi4iniqieifi~hoipiaibici]f^f7f8f%c_fLgMgNgEghbFg~b: Kg=f~e:c`cafmb{cOgugPgbb4 fb# d V A 5 w 6 q s $ K t l b f D E r P Q x R ( F G X c y S T L H Y h i j % Z k 0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
635 for i in range(ndim): 2bhUc3c4c5c=c6c?c7c8cNbnb+ ' u a kbPd}cohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperi5isimi4iniqieifi~hoipiaibici]f^f7f8f%c_fLgMgNgEghbFg~b: Kg=f~e:c`cafmb{cOgugPgbb4 fb# d V A 5 w 6 q s $ K t l b f D E r P Q x R ( F G X c y S T L H Y h i j % Z k 0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
636 vec[i] = t[i] 2Uc3c4c5c=c6c?c7c8cNbnb+ ' u a kbPd}c*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperi5isimi4iniqieifi~hoipiaibici]f^f7f8f%c_fLgMgNgEghbFg~b: Kg=f~e:c`cafmb{cbb4 fb# d V A 5 w 6 q s $ K t l b f D E r P Q x R ( F G X c y S T L H Y h i j % Z k 0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegveycwexeyezcAczeAeBcCcBeCeDeEezdAd+d,d-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bHdIdcedeeefeJdgeheieKd_b
637 return 0 2bhUc3c4c5c=c6c?c7c8cNbnb+ ' u a kbPd}cohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boeperi5isimi4iniqieifi~hoipiaibici]f^f7f8f%c_fLgMgNgEghbFg~b: Kg=f~e:c`cafmb{cOgugPgbb4 fb# d V A 5 w 6 q s $ K t l b f D E r P Q x R ( F G X c y S T L H Y h i j % Z k 0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
640cdef inline bint _normalize_axis(integer_t& axis, integer_t extent) except -1 nogil:
641 if axis < -extent or axis >= extent: 2Uc3c4c5c=c6c?c7c8cNbnb+ ' ddAbedfdgdBbCbDbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepeqieifi~hoipiaibici]f^f7f8f%c_fLgMgNgEghbFg~b: Kg=f]e.f(dUg/fvf*g^eNc=gTgOc)c+g_e?g`e*e{e*cPcIf|e}e~e:c`cafmb{cbb4 fb} # O d V , A 5 w 6 q . abs v $ K [ ] t l b B C f ^ gbD E r W P Q x R ( F G X c y ` S T L H Y h I i j % Z { / | k 0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegveycwexeyezcAczeAeBcCcBeCeDeEezdAd+d,d-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bHdIdcedeeefeJdgeheieKd_bOhPh
642 return False 2~hoipiaibiciUg*g=gTg+g?g
643 if axis < 0: 2Uc3c4c5c=c6c?c7c8cNbnb+ ' ddAbedfdgdBbCbDbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepeqieifi~hoipiaibici]f^f7f8f%c_fLgMgNgEghbFg~b: Kg=f]e.f(d/fvf*g^eNcTgOc)c+g_e`e*e{e*cPcIf|e}e~e:c`cafmb{cbb4 fb} # O d V , A 5 w 6 q . abs v $ K [ ] t l b B C f ^ gbD E r W P Q x R ( F G X c y ` S T L H Y h I i j % Z { / | k 0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegveycwexeyezcAczeAeBcCcBeCeDeEezdAd+d,d-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bHdIdcedeeefeJdgeheieKd_bOhPh
644 axis += extent 2nfkeof#czf$c@eLcvf)c*e
645 return True 2Uc3c4c5c=c6c?c7c8cNbnb+ ' ddAbedfdgdBbCbDbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepeqieifi~hoipiaibici]f^f7f8f%c_fLgMgNgEghbFg~b: Kg=f]e.f(d/fvf*g^eNcTgOc)c+g_e`e*e{e*cPcIf|e}e~e:c`cafmb{cbb4 fb} # O d V , A 5 w 6 q . abs v $ K [ ] t l b B C f ^ gbD E r W P Q x R ( F G X c y ` S T L H Y h I i j % Z { / | k 0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegveycwexeyezcAczeAeBcCcBeCeDeEezdAd+d,d-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bHdIdcedeeefeJdgeheieKd_bOhPh
648cdef inline bint _is_unique(BaseLayout& base, axis_vec_t& stride_order) except -1 nogil:
649 if base.strides == NULL: 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
650 return True
651 cdef int64_t cur_max_offset = 0 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
652 cdef int i = base.ndim - 1 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
653 cdef int64_t stride
654 cdef axis_t axis
655 cdef extent_t extent
656 while i >= 0: 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
657 axis = stride_order[i] 2vg5fwgLd6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngogSfTfUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-cGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
658 extent = base.shape[axis] 2vg5fwgLd6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngogSfTfUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-cGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
659 if extent != 1: 2vg5fwgLd6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngogSfTfUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-cGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
660 stride = _c_abs(base.strides[axis]) 25fLd6fdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPb|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepe$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-c} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
661 if cur_max_offset >= stride: 25fLd6fdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPb|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepe$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-c} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
662 return False 25fLd6fdfefffScgfTcccMdNdDc/e:emcEc1eMb2eOd3e4e?e5e6eGcnc7e8e
663 cur_max_offset = _overflow_checked_sum(cur_max_offset, _overflow_checked_mul(stride, (extent - 1))) 2.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPb|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepe$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-c} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
664 i -= 1 2vg5fwgLd6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8eUc3c4c5c=c6c?c7c8cdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRf*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngogSfTfUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrb?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-cGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgdg-e.eegXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
665 return True 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' Wcdb9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: @g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_b
668@cython.overflowcheck(True)
669cdef inline int64_t _overflow_checked_mul(int64_t a, int64_t b) except? -1 nogil:
670 return a * b 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepeminiqieifi~hoipiaibicimgngghogSfTf(gUfMh,hEhCh-hJhKhHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: FhNhIhDhLh.h@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hdiOhPhQhRh^h_h
673@cython.overflowcheck(True)
674cdef inline int64_t _overflow_checked_diff(int64_t a, int64_t b) except? -1 nogil:
675 return a - b
678@cython.overflowcheck(True)
679cdef inline int64_t _overflow_checked_sum(int64_t a, int64_t b) except? -1 nogil:
680 return a + b 2vglh5fwgLdmh%g6fPfdfefffScgfTc.clfccMdmfNdDc/e:emcEc;e1eMb2eOd=e3e4eFc?e5e6eGcnc7e8ebhUc3c4c5c=c6c?c7c8cXg.gdcjeVccbNbnb+ ' WcdbnhGh9cObddAbedfdgdXcebBbCbDb!cPbjghf|cjbu a kbnfwfkeofxf#cpfyfYcPd}czfQf$c@eLcRfohph'g*f+fQdhdHcQbid9e!ejd#ekdIcJcRbld$eoc%emdndSbFeodGe'eTbHeRdpcIeJeSdpdKeLeKcqcrc(eMeqdUb)e`brdNeOesdscPeTdtcVbUd{b|blemene}boepemgngghogSfTf(gUfChHhxgqf;fVd$gZfQgkglg0fifZcqere[eYgecfcgcse/ghcteMc:gZgEbtdWbWdXbYbXdYdVgicAgQeZd0dZb0b1d2d1b2b3b4b3d4d5d5b6d7d8d9d6b7b8b!d9b!bRejclb]f^f7f8f#d%c#b_f$d@cLgMgNgEg$bhbFg~b: IhDh@g[g%d]g^g_g0g1g`g{g|g}g2g3g~g%b4g5g'd'b6g7g8g9gKg~cadobpbBgsg=fbdWgRgqbudSgFbtgvdrbvhwh;g?fSe@fAfBfue/crfCf,fsftf[c'cDfEf]c-fFfufGf^cHf(c!gch9fdhpgcdqgjh)g1fkh!f]e.f(dUg#g/fvfeh*g^eNc=gTgOc)cfh+g_e?g`e*e{e*cPcIf|e}e2f3f_c,gshth#f$f)d~e:c`cafmb{c`fJfVf+c{f*d;cKf4fLf,cMfNfOf-chhyhxhzhOgugahuhAhPgBhihGgbb4 ygHgIgJgCgfbDgzgrg} wd# |fxd%fO d }fV , Wf~ sb[fkc+eA ac5 ~f:flcw ag6 q Qc- ,e. abtbs 'fv $ K (b[ fg] t l b ucB C f ggub^ )bgbvbD ydTeE _ ) r ; W P wbQ Uebcx R ( *bhgF G xbX (fvcc * igy ` S T L jfVeH Y We)fh I i j wcXeYe% Z { / ybzb| k = 0c0 1 J m 2 1c7 ? n e xcM ZeU 8 0eo p z 3 9 g @ N ! 2cibbgcgqhdg-e.erheg-gXfveycwexeyezcAczeAeBcCckfBeCeDeEeYfzdAd+d,dbf-d.d/d:dGb+b,b-bBd;d=d?d@dCdHb[d]d^d_d`dDdEdcfIbJbKb.b/b:b;bFd{d|d}d~daeGdbeLb=b?b@b[b]b^bRcHdIdcedeeefeJdgeheieKd_bShThUh/hVhWhXh:hYhZh0h;h1h2h3h=h4h5h6h?h7h8h9h@h!h#h$h[h%h'h(h]h|h`h{h)h*h+h}hdiOhPhQhRh^h_h
683@cython.overflowcheck(True)
684cdef inline int64_t _overflow_checked_div_ceil(int64_t a, int64_t b) except? -1 nogil:
685 return (a + b - 1) // b